1

我们最近更新到 VS2012 并且还将我们的 PostSharp 版本更改为 3.0.26。通常这种组合可以正常工作,但我收到单元测试项目的警告,例如

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

现在通常我可以通过相应地更改项目设置来禁用此警告(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) 我不确定这是否是正确的方法。

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

4

1 回答 1

5

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

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
  <Assembly Name="MyModule"/>
  <Compilation>
    <Property Name="SkipPostSharp">True</Property>
  </Compilation>
</Fakes>
于 2013-06-17T14:56:52.043 回答