来自PowerShell
Set-Alias msbuild C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
并且需要从与我的sln文件相同的目录运行
> msbuild /nologo /property:DefineConstants=FOO
这个程序可以正常运行。假设我需要两个构建时常量。
> msbuild /nologo /property:DefineConstants=FOO;BAR
PowerShell将分号解释为语句结束符,因此只会执行单个常量,然后尝试运行命令BAR
并报错。这不是我想要的。
那么怎么办呢?
> msbuild /nologo /property:DefineConstants="FOO;BAR"
MSBUILD : error MSB1006: Property is not valid.
Switch: BAR
这个也不起作用。不确定发生了什么,但它似乎将“FOO;BAR”解释为某种单一的东西,而不是两个常量。
那么。我该如何传入多个常量?
编辑 经过进一步调查,我在cmd.exe中运行以下命令:
>C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe /nologo /property:DefineConstants=FOO;BAR
MSBUILD : error MSB1006: Property is not valid.
Switch: BAR
尽管这个可以运行。
>C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe /nologo /property:DefineConstants="FOO;BAR"