如何检查字符串包含msbuild中的字符串?
How to check string contains a string in msbuild?
我在为我的 vcxproj
项目编写 targets
文件时遇到问题。
在我的 targets
文件中,我首先要根据配置设置一些构建属性,所以我有这个:
<Choose>
<When Condition="$(Configuration.Contains('Debug', StringComparison.OrdinalIgnoreCase))">
<PropertyGroup>
</PropertyGroup>
</When>
</Choose>
但是当我尝试用导入的目标文件打开项目时出现错误
error : The expression ""Debug".Contains(Debug, StringComparison.OrdinalIgnoreCase)" cannot be evaluated. Method 'System.String.Contains' not found.
我正在使用 Visual Studio 2022 预览版。
根据 MSBuild docs 字符串只是一个 .Net5 字符串,应该有方法。
有人可以帮我吗?
Contains
的重载仅在最近的 .Net 版本中可用,例如在4.8 所以这就是找不到它的原因。解决方法:转换为更低然后比较
<Choose>
<When Condition="$(Configuration.ToLowerInvariant().Contains('debug'))">
</When>
</Choose>
我在为我的 vcxproj
项目编写 targets
文件时遇到问题。
在我的 targets
文件中,我首先要根据配置设置一些构建属性,所以我有这个:
<Choose>
<When Condition="$(Configuration.Contains('Debug', StringComparison.OrdinalIgnoreCase))">
<PropertyGroup>
</PropertyGroup>
</When>
</Choose>
但是当我尝试用导入的目标文件打开项目时出现错误
error : The expression ""Debug".Contains(Debug, StringComparison.OrdinalIgnoreCase)" cannot be evaluated. Method 'System.String.Contains' not found.
我正在使用 Visual Studio 2022 预览版。 根据 MSBuild docs 字符串只是一个 .Net5 字符串,应该有方法。 有人可以帮我吗?
Contains
的重载仅在最近的 .Net 版本中可用,例如在4.8 所以这就是找不到它的原因。解决方法:转换为更低然后比较
<Choose>
<When Condition="$(Configuration.ToLowerInvariant().Contains('debug'))">
</When>
</Choose>