.net 无法使用Fakes程序集生成项目

e0bqpujr  于 2022-12-01  发布在  .NET
关注(0)|答案(5)|浏览(286)

我已经将Fakes程序集添加到Visual Studio 2012单元测试项目中,与我的应用程序项目(System Under Test)相对应,如Peter Provost's article中所述。但是,由于生成的Fakes代码中存在未解析的类型引用,因此将不再生成该项目:

The type or namespace name 'FieldDefinition' does not exist in the namespace 'bc::ProductStudio' (are you missing an assembly reference?)
[C:\Users\arvek\Projects\Project\Project.Tests\obj\Debug\Fakes\bc\f.csproj]
C:\Users\arvek\Projects\Project\Project.Tests\f.cs

这是怎么了,据我所知,这应该是正常的,所以在我看来,Fakes的设备里有个漏洞.

wj8zmpe1

wj8zmpe11#

VS2013中也存在此错误。Link为MSDN错误。

  • 解决方法:*从FakeAssemblies文件夹中删除file .messages。
hs1rzwqc

hs1rzwqc2#

这个错误很可能是由伪造的程序集触发的Fakes中的bug引起的。我已经将这个问题提交给Microsoft。

6kkfgxo0

6kkfgxo03#

一个可能帮助你诊断问题的选项是打开你的fakes诊断。在你的.fakes文件上。

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011" Diagnostic="true" Verbosity="Noisy">

此外,请确保将“MSBuild项目生成输出详细程度”设置为“诊断”。您可以在“工具”-〉“选项”-〉“项目和解决方案”-〉“生成并运行”中找到此设置。
重新构建测试项目,现在输出窗口应该充满了信息,包括Fakes的任何失败

yyyllmsg

yyyllmsg4#

删除Fakes文件夹将解决此问题。

bqjvbblv

bqjvbblv5#

你可能不会相信,我只是简单地在文件中添加一行,删除新行,然后保存一个实际上未经修改的文件,就可以让fakes再次工作。在下一次构建之后,一切都很好。
那些让你...

相关问题