当前位置:  开发笔记 > 开发工具 > 正文

msbuild,定义条件编译符号

如何解决《msbuild,定义条件编译符号》经验,为你挑选了2个好方法。

我可能只是盲目的,但在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中的条件进入.



1> Tomalak..:

你见过这个吗?(大部分信息都在倒数第二篇帖子中)

/p:DefineConstants="MYSYMBOL1;MYSYMBOL2"


添加了代码,就是这样,谢谢!它会覆盖可能在.csproj文件中定义的所有常量,这也很好.
为了让我能够工作,我被迫将它添加到命令行:/ t:Rebuild

2> Ruben Bartel..:

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中的(以分号分隔的)定义.很高兴知道我认为......


这是一个死链接.
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有