观察以下的 msbuild 脚本片段:
<ItemGroup>
<R Include="-Microsoft.Design#CA1000" />
<R Include="-Microsoft.Design#CA1002" />
</ItemGroup>
我想将它转换为
/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>
但是,我不喜欢这样做,因为实际上我有很多规则希望禁用,像这样列出所有规则是我想避免的。