我对.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的项目属性中轻松更改它们。

最佳答案

编译器常量设置为属性“DefineConstants”,因此您应该只可以评估该属性。您的Choose语句需要放在定义常量的PropertyGroup或目标内部。

<Choose>
    <When Condition="$(DefineConstants.Contains(CONST-1))">
        ...
    </When>
    <When Condition="$(DefineConstants.Contains(CONST-2))">
        ...
    </When>
</Choose>

关于c# - 如何在.csproj文件中使用MSBuild条件测试编译器指令?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12957061/

10-15 11:41