GENERATEFAKES 失败,出现 CS0234

GENERATEFAKES fails with CS0234

我的项目是为我的队友构建的,而不是为我构建的。

项目:

错误:

我删除了对 mscorlib fake 的引用,为系统重新创建了 Fake,但得到了同样的错误。 如果我尝试添加对 mscorlib 的引用,我会收到消息:

A reference to 'C:\Windows\Microsoft.NET\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll' could not be added. This component is already automatically referenced by the build system.

我尝试将 <Reference Include="mscorlib" /> 添加到项目文件中,但这并没有解决问题。

我使用的是 VS 2017。 将不胜感激任何线索。

谢谢@Abhitej 的回答。它解决了这个问题。除了切换到更高版本的框架之外,我还为 .fakes 文件中的 ShimGeneration 和 StubGeneration 添加了每个失败 class 之类的标签 <Remove FullName="System.Security.Cryptography.CryptoStream"/>

在大多数情况下,像这种情况,它与包装盒上安装的 .Net Framework 版本相关。只要您的测试项目以您机器上最高版本的框架为目标,就应该可以解决问题。此外,在处理 System* 命名空间时,请确保只为您需要的类型生成伪造品,不包括其他类型。这应该有助于 Fakes 处理 API 版本变更并解决您可能因此而看到的任何构建错误。

-Abhitej.