【发布时间】:2014-09-09 21:24:17
【问题描述】:
从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"
【问题讨论】:
标签: powershell batch-file syntax msbuild