我可能只是盲目的,但在MSBUILD中是否有指定条件编译符号的命令行?
我目前在我的buildscript中有这行:
SET MSBUILD=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe SET CONFIG=Debug %MSBUILD% /p:Configuration=%CONFIG% /p:OutputPath=..\..\output source\MyProject\MyProject.csproj
我想补充一个条件.在Visual Studio中,我可以进入Project Properties => Build =>条件编译符号,但我还没有看到msbuild的选项?
Bonus Karma如果你知道我是否可以完全覆盖.csproj文件中已经指定的所有符号,以确保只有我的Buildscript中的条件进入.
你见过这个吗?(大部分信息都在倒数第二篇帖子中)
/p:DefineConstants="MYSYMBOL1;MYSYMBOL2"
BjörnLasar在这篇文章中不得不使用空格而不是分号:http://www.linqinpark.net/2009/01/13/MSBuildWithMultipleDefineConstants.aspx
更新:博客已经消失; 通过Internet Archive检索:
最近我不得不直接使用MSBuild来自动化一些构建.我还必须根据配置配置一些预处理器定义.这通常是通过像这样的参数来完成的
"/p:DefineConstants=MY_PREPROC_FLAG"
这里没什么特别的,因为网上有足够的评论.今天我需要一个Flag更多,我使用命令行语法,类似于我从IDE中知道它的方式:
"/p:DefineConstants=MY_PREPROC_FLAG;YET_ANOTHER_FLAG"
但是这个没用.
所以重点是,如果你想通过命令行支持项目的多个定义,你必须用简单的空格分隔它们......
"/p:DefineConstants=MY_PREPROC_FLAG YET_ANOTHER_FLAG"
它将被添加到IDE中的(以分号分隔的)定义.很高兴知道我认为......