【发布时间】:2012-10-09 01:16:59
【问题描述】:
我对 .csproj 文件中的功能和条件完全陌生,因此感谢您提供任何和所有帮助。
我想要做的是检查当前配置中的特定编译器指令。示例如下:
<Choose>
<When Condition= [current configuration has CONST-1 compiler constant defined] >
...
</When>
<When Condition= [current configuration has CONST-2 compiler constant defined] >
...
</When>
</Choose>
我不知道这是否可能。如果有更好的方法来做我要求的事情,请告诉我。无论哪种方式,我都想测试配置的独立条件。
编辑
我真正想要的是一个我可以轻松编辑的值,最好是在 Visual Studio 中,我也可以在不考虑配置的情况下检查它。我考虑了编译器常量,因为您可以在 VS 的项目属性中轻松更改它们。
【问题讨论】:
-
可能更常见的是使用
Property元素。您的 csproj 文件将已经有条件PropertyGroup元素,具体取决于配置。在其中,您可以添加新的自定义Property元素,并且可以在Condition=属性中以通常的方式测试它们。这对你有用吗,还是你真的需要编译器指令?它们更复杂,因为可以通过多种方式定义它们。 -
可能。有没有办法在我添加自定义属性元素后,在 VS 中轻松编辑它们,而无需每次我想更改它们时都编辑 .csproj 文件?
-
我想要的是一个定义的值,无论配置是什么,我都可以更改和检查。
-
不,没有办法从 GUI 编辑自定义属性,除非你想创建一个 VS 插件(一些插件确实添加属性,并将它们作为项目属性中的新选项卡提供,但那是可能工作太多)
标签: c# msbuild csproj compiler-directives