安装Visual Studio 2015后,仿冒程序停止工作

9
我安装了Visual Studio 2015试用版,自此我的使用fakes的单元测试无法编译,即使在VS 2013中也是如此。该单元测试项目针对.net 4.5。 Msdn建议更改目标框架版本。如果我将目标框架更改为4.6,则错误消失,但我无法将项目更新到.net 4.6,因为每个开发人员都必须同时更新。
我收到的错误信息如下:
“主要引用'mscorlib.4.0.0.0.Fakes'无法解析,因为它是针对“.NETFramework,Version=4.6”构建的框架。这是一个比当前目标框架“.NETFramework,Version=4.5”更高的版本。”
我还尝试过删除fakes并重新创建它们,但它们无法构建,我会收到以下错误:
“The type or namespace name 'EventDataAttribute' does not exist in the namespace 'System.Diagnostics.Tracing'*;”
有任何修复方法吗?

到目前为止,我的解决方案是删除所有的伪造对象,并用RhinoMocks替换它们... - Carra
2个回答

14
你可以尝试删除问题类。如果你的构建输出中有像以下语句:

warning CS0115: 'System.Security.Cryptography.X509Certificates.Fakes.StubX509Certificate2.Dispose(bool)': no suitable method found to override 
warning CS0234: The type or namespace name 'EventDataAttribute' does not exist in the namespace 'System.Diagnostics.Tracing'

然后可以从mscorlib.fakes或System.fakes文件中删除它。
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
  <Assembly Name="mscorlib" Version="4.0.0.0"/>
  <StubGeneration>
    <Remove FullName="System.Diagnostics.Tracing"/>
    <Remove FullName="System.Text.Encoding"/>
    <Remove FullName="System.Security.Cryptography" />
  </StubGeneration>
</Fakes>

现在,情况可能比这复杂一些。为了使其正常工作,我需要将单元测试项目定向到4.6版本以生成mscorlib.4.0.0.0.Fakes.dll。然后我可以将其重新定向回4.5.1版本。但是,处理配置可能值得你花费一些时间,因为我能够解决类似的问题。
这里有一个Microsoft问题报告,这就是我得到的解决方法。

链接已过期: *"Microsoft Connect 已被停用"*。 - Pang

0
我必须提到除了doobop发布的解决方案对我有用之外,还需要以下几行代码:
<Remove FullName="System.FormattableString" />
<Remove FullName="System.IO" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接