DefineConstants通过CLI工作,但不通过VS2010接口CL参数工作

时间:2015-12-23 18:12:16

标签: c# visual-studio-2010 msbuild c-preprocessor conditional-compilation

我有一个简单的程序来查找预编译器常量:

#if TEST1
    MessageBox.Show("TEST1");
#endif

现在,如果我通过CLI构建以下内容,那么事情就像预期的那样。消息框显示“TEST1”。

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild" "C:\tests\TestBuildConstants\TestBuildConstants.sln" /p:OutDir="C:\tests\TestBuildConstants" /p:DefineConstants="TEST1" /t:Rebuild

但是,如果我去项目属性 - >调试 - >命令行参数,并输入:/p:DefineConstants="TEST1" /t:Rebuild,一旦我运行程序,它就拒绝传递常量。

我想要像这样通过VS GUI的原因是因为我想在我编码时能够快速地测试和切换各种构建。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

项目属性>调试>命令行参数用于在VS运行应用程序后构建的参数。它们不是MSBuild的参数。您需要转到项目属性>构建页面并更改"条件编译符号"包括TEST1。