MS Visual Studio 2015 Enterprise。
我正在学习 Microsoft Fakes Framework 。我有两个程序集AcDbMng.dll
和AcMng.dll
由其他公司(Autodesk)编写。他们使用.Net Framework 2.0。我创建了新的单元测试项目,将这些程序集添加到我的项目中,并通过其上下文菜单调用“ Add Fakes Assembly ”。现在我启动我的项目构建并获得128个错误...例如:
找不到名称空间的类型或名称是不成功的 “
ICollection
”(也许,没有使用或装配的指令 参考)。 [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找不到名称空间的类型或名称是不成功的 “
IDictionary
”(也许,没有使用或装配的指令 参考)。 [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修饰符“
override
”对此项目无效。 [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,但我得到相同的消息。
ICollection
,IDictionary
,修饰符“override
”...我不明白,它们与这些程序集有什么关系,因为它们是在平台程序集中定义的,而不是AcDbMng.dll
和AcMng.dll
。
有人知道这种行为吗?
UPD
也许Autodesk使用具有相同名称的自己的接口,我将使用?
为 Microsoft Fakes Framework 添加一些AutoCAD的其他程序集?如果我仅为AcMng.dll
生成假货,那么我没有错误。但如果我也为AcDbMng.dll
生成了假货,那么我就会遇到这些问题。此外,在解决方案资源管理器的情况下,我看到AcMgd.17.2.0.0.Fakes
已出现,但我看不到像AcDbMgd.17.2.0.0.Fakes
这样的内容:
UPD2
可以从here下载AcDbMgd.dll
文件。
UPD3
主题已关闭。有关fakes
- 格式的更详细信息为here。
答案 0 :(得分:0)
您可以尝试使用类似
的内容编辑AcDbMgd.fakes
和AcMgd.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>
您正在限制生成的类并明确决定哪些类执行。当我遇到像你一样的问题时,如果我限制生成的类,我会好运。如果不能自己重新创建它,很难给出更具体的答案。