如何让MSbuild在条件测试时仅使用一个“DefineConstants”?

6

我在一个C#项目中定义了条件编译符号为“ABC;XYZ”,并且我可以在项目的XML文件中使用以下内容进行MSBuild期间项目代码文件的有条件包含:

<Compile Include="SomeFile.cs" Condition="$(DefineConstants)'=='ABC;XYZ'"/>

但是我需要像下面这样的东西,但它不起作用:
<Compile Include="SomeFile.cs" Condition="$(DefineConstants)'=='ABC'"/>

是否可以仅使用一个define常量进行条件测试?

1个回答

8
我懂了... 这个链接 帮助了我。
基本上,你只需要查看字符串是否包含你想要根据其条件确定的任何标记。 在我的情况下,这是它的代码:
<Compile Include="SomeFile.cs" Condition="$(DefineConstants.Contains('ABC'))" />

1
谢谢您发布这个。我在微软文档中找不到如何做到这一点。再次感谢 Stack Overflow 的帮助。 - Fabien Teulieres
如何检查 !Contains - zafar
3
@zafar Condition="!$(DefineConstants.Contains('NET5_0_OR_GREATER'))". 在此处查看:https://learn.microsoft.com/en-us/visualstudio/msbuild/msbuild-conditions?view=vs-2022 - Trương Quốc Khánh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接