带参数的简单Powershell Msbuild失败

Nap*_*Nap 6 msbuild powershell

我试图通过一个简单的变量传递,

没有参数

msbuild MySolution.sln /p:Configuration=Debug /p:Platform="Any CPU"
Run Code Online (Sandbox Code Playgroud)

试试1

$buildOptions = '/p:Configuration=Debug /p:Platform="Any CPU"'
msbuild MySolution.sln + $buildOptions
Run Code Online (Sandbox Code Playgroud)

- >导致MSB1008

试试2

$command = "msbuild MySolution.sln" + $buildOptions
Invoke-expression $command
Run Code Online (Sandbox Code Playgroud)

- >导致MSB1009

我试过这篇文章的解决方案,但我认为这是一个不同的错误.

Sha*_*evy 13

尝试以下方法之一:

msbuild MySolution.sln $buildOptions

Start-Process msbuild -ArgumentList MySolution.sln,$buildOptions -NoNewWindow
Run Code Online (Sandbox Code Playgroud)

顺便说一下,PowerShell v3中有一个新功能,仅适用于这种情况,在%之后的任何事情都按原样处理,所以你的命令看起来像:

msbuild MySolution.sln --% /p:Configuration=Debug /p:Platform="Any CPU"
Run Code Online (Sandbox Code Playgroud)

更多信息请参见这篇文章: http://rkeithhill.wordpress.com/2012/01/02/powershell-v3-ctp2-provides-better-argument-passing-to-exes/