मैं एमएसबिल्ड को संपत्ति पास करने का प्रयास कर रहा हूं। संपत्ति मूल्यों की अर्धविराम-सीमित सूची है। this question के विपरीत, मैं PowerShell से MSBuild चला रहा हूं।PowerShell से इसे चलाते समय MSBuild कमांड लाइन पर अर्धविराम युक्त एक संपत्ति मान कैसे पास करूं?
मैं:
PS> msbuild .\Foo.sln /p:PackageSources="\\server\NuGet;E:\NuGet"
MSBUILD : error MSB1006: Property is not valid.
Switch: E:\NuGet
अगर मैं कमांड प्रॉम्प्ट से एक ही आदेश चला है, यह ठीक काम करता है। मैं PowerShell में काम करने के लिए कैसे प्राप्त करूं?
अर्धविराम के सामने बैकटिक एस्केप कैरेक्टर (" '") का उपयोग करने का प्रयास करें। संभावित रूप से उस स्ट्रिंग में अन्य वर्ण भी। – David
बैकटिक काम नहीं करता है - समस्या यह है कि एमएसबिल्ड अपेक्षा करता है/पी: प्रोपे = वैला; प्रोप = वैलबी। अर्धविराम को एमएसबिल्ड से 'एस्केपिंग' की ज़रूरत है, न कि पावरशेल से। उद्धरण जोड़ना इसे ठीक करना चाहिए, लेकिन कमांड लाइन को पार करते समय PoSh उन्हें बाहर खींचता है। –