我们最近更新到VS2012,并将PostSharp版本更改为3.0.26。通常这种组合工作正常,但我收到单元测试项目的警告,如
模块“MyModule.Fakes.dll
”不包含任何方面或其他转换。为了提高构建时性能,请考虑通过在项目中设置编译符号(也称为常量)“SkipPostSharp”来禁用此模块的PostSharp,或者设置MSBuild属性“SkipPostSharp = True”。
现在我通常可以通过相应地更改项目设置来禁用此警告(SkipPostSharp = True),但我已经为包含单元测试的MyProjectTest项目完成了此操作。
当我将<SkipPostSharp>True</SkipPostSharp>
添加到MyModule.Fakes
文件夹中的Fakes
文件时,有关PostSharp的警告消失,但是,我收到另一条错误消息:
名称空间“http://schemas.microsoft.com/fakes/2011/”中的元素“Fakes”在名称空间“http://schemas.microsoft.com/fakes/2011/”中包含无效的子元素“SkipPostSharp”。期望的可能元素列表:命名空间“http://schemas.microsoft.com/fakes/2011”中的“StubGeneration,ShimGeneration,Compilation”。
更新
我还尝试编辑fakes.xsd
文件并添加一个额外的SkipPostSharp
元素,但是a)这仍然不被Visual Studio识别为有效元素而b)我不确定是否无论如何,这将是正确的方法。
任何想法如何摆脱这些警告?
答案 0 :(得分:5)
您可以指定项目文件的其他属性Fakes将生成以通过将Property元素放在.FAKES文件末尾的Compilation元素内来构建fakes程序集。以下是基于您的描述的示例。
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="MyModule"/>
<Compilation>
<Property Name="SkipPostSharp">True</Property>
</Compilation>
</Fakes>