如何在BeforeBuild目标中解析DefineConstants值?

时间:2011-09-30 06:28:27

标签: c# msbuild

this question相关。

我真正想要一种设置可从Vis Studio 2010 IDE设置的键值对的方法。我似乎无法在IDE中设置Project属性值,因此我正在考虑使用编译器常量。

所以,如果我将编译器常量设置为

 <DefineConstants>Foo=bar;Key=Value 2;</DefineConstants>

我可以解析这个(在一个BeforeBuild目标中说),这样我就可以提取“bar”和“Value 2”的值吗?我的MSBuild技能几乎没有,我的谷歌foo没有找到任何解决方案。

1 个答案:

答案 0 :(得分:0)

使用MSBuild编译项目时可以覆盖此值。

 msbuild.exe myproj.csproj /p:DefineConstants="foo=true"

您无法在BeforeBuild任务中设置构建属性,但可以使用以下命令读取它们:

 $(DefineConstants)

这将返回原始字符串,您需要使用批处理命令解析字符串,以便在BeforeBuild步骤中将它们分隔为键/值对。

不确定你要做什么,DefineConstants就是这样,并在代码中引用条件编译。如果要添加自定义构建属性,可以编辑csproj文件并包含自己的目标文件。这取决于您想要访问它们的位置和原因。在构建过程中IDE(插件)还是代码?