Msbuild 静态方法调用中的十六进制数

Msbuild 静态方法调用中的十六进制数,msbuild,Msbuild,是否可以在MSBuild中的静态方法调用中使用十六进制数?我尝试了一些不同的变体,但我得到了以下错误: 错误MSB4186:无效的静态方法调用语法: “[MSBuild]::位与(0x1,$(FxCopExit))”。输入字符串不在列表中 格式正确。静态方法调用的形式应为: $([FullTypeName]::Method()),例如$([System.IO.Path]::Combine('a','b')) 我正在尝试这样做: <Warning Text="Assembly loading

是否可以在MSBuild中的静态方法调用中使用十六进制数?我尝试了一些不同的变体,但我得到了以下错误:

错误MSB4186:无效的静态方法调用语法: “[MSBuild]::位与(0x1,$(FxCopExit))”。输入字符串不在列表中 格式正确。静态方法调用的形式应为: $([FullTypeName]::Method()),例如$([System.IO.Path]::Combine('a','b'))

我正在尝试这样做:

<Warning Text="Assembly loading exception" Condition="$([MSBuild]::BitwiseAnd(0x8, $(FxCopExit))) == 0x8"/>

一切顺利。因为我映射的错误代码是用十六进制定义的,所以我更喜欢在这里用十六进制保存它们,以供将来的脚本读者阅读…

据我所知,这是不可能的。保持十六进制的唯一方法是将其包装在转换中:

<Warning Text="Assembly loading exception" Condition="$([MSBuild]::BitwiseAnd($([System.Convert]::ToInt32(`0x8`, 16)), $(FxCopExit))) == 0x8"/>

我不确定这是否真的比用十进制重写数字和记录更好/更可读,但这在技术上是正确的,至少

<Warning Text="Assembly loading exception" Condition="$([MSBuild]::BitwiseAnd($([System.Convert]::ToInt32(`0x8`, 16)), $(FxCopExit))) == 0x8"/>