Ho appena provato questo su PowerShell v1.0. L'installazione è la seguente:Come richiamare MSBuild da PowerShell usando l'operatore &?
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"
.
Questa linea fallisce con un messaggio di errore poco intuitivo:
Id CommandLine
-- -----------
5 & $msbuild $a
.
Questa riga non riesce perché & prevede che il primo argomento sia il comando stesso.
Id CommandLine
-- -----------
10 & "$msbuild $a"
.
Questa linea funziona:
Id CommandLine
-- -----------
16 cmd /c "$msbuild $a"
.
Spiegare per favore. Sono più interessato al motivo per cui la sintassi & non funziona, rispetto a una soluzione alternativa specifica di MSBuild.
Suggerisco di utilizzare un cmdlet di supporto come ['Invoke-MSBuild'] (http://sedodream.com/2014/07/19/IntroducingPSBuildAnImprovedInterfaceForMsbuildexeInPowerShell.aspx) anziché chiamare direttamente MSBuild. – orad