2014-12-11 3 views
0

Возможно ли каким-либо образом использовать шестнадцатеричные числа в вызове статического метода в MSBuild? Я попробовал несколько различных вариантов, но я получаю эту ошибку:Шестнадцатеричные числа в вызовах статического метода

error MSB4186: Invalid static method invocation syntax: "[MSBuild]::BitwiseAnd(0x1, $(FxCopExit))". Input string was not in a correct format. Static method invocation should be of the form: $([FullTypeName]::Method()), e.g. $([System.IO.Path]::Combine('a', 'b')).

Я пытаюсь сделать это:

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

Стоит отметить, что 0x8 на правой стороне из условия приемлемы, поэтому, если я вместо этого сделаю

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

Все работает отлично. Поскольку коды ошибок, которые я отображаю, определены в шестнадцатеричном формате, я бы предпочел сохранить их в шестнадцатеричном формате здесь, а для будущих читателей скрипта ...

ответ

0

Насколько я могу судить, это невозможно. Единственный способ сохранить шестнадцатеричный, чтобы обернуть его в конверсии:

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

Я не уверен, если это на самом деле лучше/более читаемые, чем просто переписывание числа в десятичной системе счисления и документировании, но это технически правильно , не менее ...

Смежные вопросы