观察以下msbuild脚本:
<ItemGroup>
<R Include="-Microsoft.Design#CA1000" />
<R Include="-Microsoft.Design#CA1002" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
我想把它转换成
/ruleid:-Microsoft.Design#CA1000 /ruleid:-Microsoft.Design#CA1002
现在,我想出的最好的是@(R -> '/ruleid:%(Identity)'),但这只会产生
/ruleid:-Microsoft.Design#CA1000;/ruleid:-Microsoft.Design#CA1002
注意分隔两个规则的分号,而不是空格.这很糟糕,fxcop无法识别 - 我需要一个空间.
现在,这是一个简单的例子,所以我可以声明这样的事情:
<PropertyGroup>
<R>/ruleid:-Microsoft.Design#CA1000 /ruleid:-Microsoft.Design#CA1002</R
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
但是,我不喜欢这个,因为实际上我有许多规则我希望禁用并列出所有这些规则,这是我希望避免的.
Jul*_*rau 22
要使用分号以外的字符分隔每个项目,请使用语法 @(myType, 'separator')
<ItemGroup>
<R Include="-Microsoft.Design#CA1000" />
<R Include="-Microsoft.Design#CA1002" />
</ItemGroup>
<Target Name="FxcopRulesFlattening">
<!-- Using the syntax @(ItemName, 'Separator')-->
<Message Text="@(R -> '/ruleid:%(Identity)', ' ')"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3854 次 |
| 最近记录: |