在VS2012中使用假货时发出PostSharp警告

Gor*_*ger 1 postsharp microsoft-fakes visual-studio-2012

我们最近更新到VS2012,并将PostSharp版本更改为3.0.26.通常这种组合工作正常,但我得到了我的单元测试项目的警告,如

模块" MyModule.Fakes.dll"不包含任何方面或其他转换.为了提高构建时性能,请考虑通过在项目中设置编译符号(也称为常量)"SkipPostSharp"来禁用此模块的PostSharp,或者设置MSBuild属性"SkipPostSharp = True".

现在我通常可以通过相应地更改项目设置来禁用此警告(SkipPostSharp = True),但我已经为包含单元测试的MyProjectTest项目完成了此操作.

当我在文件夹中添加<SkipPostSharp>True</SkipPostSharp>MyModule.FakesFakes文件时,关于PostSharp的警告消失了,但是,我收到另一条错误消息:

在命名空间"元素"正版正货" http://schemas.microsoft.com/fakes/2011/ "具有无效的子元素"SkipPostSharp"命名空间" http://schemas.microsoft.com/fakes/2011/ ".期望的可能元素列表:命名空间" http://schemas.microsoft.com/fakes/2011 "中的"StubGeneration,ShimGeneration,Compilation ".

更新

我也尝试编辑fakes.xsd文件并添加一个额外的SkipPostSharp元素,但是a)这仍然不被Visual Studio识别为有效元素和b)我不确定这是否是正确的方法.

任何想法如何摆脱这些警告?

Ole*_*ych 5

您可以通过在.FAKES文件末尾的Compilation元素中放置Property元素来为Fakes生成的项目文件指定其他属性来构建fakes程序集.以下是基于您的描述的示例.

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
  <Assembly Name="MyModule"/>
  <Compilation>
    <Property Name="SkipPostSharp">True</Property>
  </Compilation>
</Fakes>
Run Code Online (Sandbox Code Playgroud)