मैंने अभी इसका परीक्षण PowerShell v1.0 पर किया है। सेटअप निम्नानुसार है:PowerShell का उपयोग करके ऑपरेटर का उपयोग करके MSBuild को कैसे शुरू करें?
Id CommandLine
-- -----------
1 $msbuild = "C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe"
4 $a = "C:\some\project\or\other\src\Solution.sln /target:Clean /target:Build"
।
यह पंक्ति unintuitive त्रुटि संदेश के साथ विफल रहता है:
Id CommandLine
-- -----------
5 & $msbuild $a
।
यह लाइन विफल हो जाती है क्योंकि & पहले तर्क को कमांड होने की अपेक्षा करता है।
Id CommandLine
-- -----------
10 & "$msbuild $a"
।
इस लाइन काम करता है:
Id CommandLine
-- -----------
16 cmd /c "$msbuild $a"
।
कृपया समझाएं। मुझे अधिक दिलचस्पी है कि & सिंटैक्स एमएसबिल्ड-विशिष्ट वर्कअराउंड की तुलना में क्यों काम नहीं कर रहा है।
मैं एमएसबिल्ड को सीधे कॉल करने के बजाय ['Invoke-MSBuild'] (http://sedodream.com/2014/07/19/IntroducingPSBuildAnImprovedInterfaceForMsbuildexeInPowerShell.aspx) के रूप में एक सहायक cmdlet का उपयोग करने का सुझाव देता हूं। – orad