Microsoft Fakes 找不到 `ICollection` 和 `IDictionary` 接口

Microsoft Fakes can't find the `ICollection` and `IDictionary` interfaces

MS Visual Studio 2015 企业。

我正在学习 Microsoft Fakes Framework。我有两个程序集 AcDbMng.dllAcMng.dll 是由其他公司 (Autodesk) 编写的。他们使用.Net Framework 2.0。我创建了新的 单元测试项目 ,将这些程序集添加到我的项目中,并通过它们的上下文菜单调用“Add Fakes Assembly”。现在我启动我的项目构建并得到 128 个错误...例如:

It wasn't succeeded to find type or a name of a name space of "ICollection" (perhaps, there is no directive of using or an assembly reference). [c:\users\andrey\documents\visual studio 2015\Projects\msfakes\obj\Debug\Fakes\adm\f.csproj] msfakes c:\users\andrey\documents\visual studio 2015\Projects\msfakes\f.cs 206092

It wasn't succeeded to find type or a name of a name space of "IDictionary" (perhaps, there is no directive of using or an assembly reference). [c:\users\andrey\documents\visual studio 2015\Projects\msfakes\obj\Debug\Fakes\adm\f.csproj] msfakes c:\users\andrey\documents\visual studio 2015\Projects\msfakes\f.cs 206119

The modifier "override" is not valid for this item. [c: \ users \ andrey \ documents \ visual studio 2015 \ Projects \ msfakes \ obj \ Debug \ Fakes \ adm \ f.csproj] msfakes c: \ users \ andrey \ documents \ visual studio 2015 \ Projects \ msfakes \ f. cs 206119

这样的错误信息我不是很清楚。我尝试更改目标 .Net Framework 平台:.Net 4.6 和 .Net 3.5,但我收到相同的消息。

ICollectionIDictionary、修饰符“override”...我不明白,它们与这些程序集有什么关系,因为它们是在平台程序集中定义的而不是 AcDbMng.dllAcMng.dll.

有人知道这种行为吗?

UPD

也许 Autodesk 使用自己的同名接口,我要为 Microsoft Fakes Framework 添加一些额外的 AutoCAD 程序集?

如果我只为 AcMng.dll 生成假的,那么我没有错误。但是如果我也为 AcDbMng.dll 生成假的,那么我就会遇到这些问题。此外,在这种情况下,在 Solution Explorer 中我看到 AcMgd.17.2.0.0.Fakes 出现了,但我没有看到类似 AcDbMgd.17.2.0.0.Fakes:

的内容

UPD2

可以从 here 下载 AcDbMgd.dll 文件。

UPD3

主题已关闭。有关 fakes 格式的更多详细信息是 here.

您可以尝试使用

之类的内容编辑 AcDbMgd.fakesAcMgd.fakes 文件
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
  <Assembly Name="AcDbMgd" Version="..."/>
  <StubGeneration>
    <Clear/>
  </StubGeneration>
  <ShimGeneration>
    <Clear/>
    <Add FullName="your class of concern"/>
  </ShimGeneration>
</Fakes>

您正在限制生成的 类 并明确决定 类 做什么。当我 运行 遇到你遇到的问题时,如果我限制生成的 类,我的运气会更好。如果不能自己重新创建,很难给出更具体的答案。