安装Visual Studio 2015后假货停止工作

时间:2015-10-06 12:51:21

标签: .net visual-studio-2013 visual-studio-2015 microsoft-fakes

我已经安装了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构建的   fraemwork。这是比当前目标版本更高的版本   框架“.NETFramework,Version = 4.5”。

我也尝试删除假货并重新创建它们但是它们没有构建,我得到这样的错误:

  

类型或命名空间名称'EventDataAttribute'不存在于   命名空间'System.Diagnostics.Tracing'*;

对此有何修复?

2 个答案:

答案 0 :(得分: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>

现在,它可能比那更微妙。为了使它工作,我需要将Unit Test项目定位到4.6以便第一次生成mscorlib.4.0.0.0.Fakes .dll。然后我可以将它重新定位到4.5.1。但是,使用配置可能值得您花费一些时间,因为我能够解决类似的问题。

这是一个Microsoft problem报告,这是我得到解决方法的地方。

答案 1 :(得分:0)

我必须提到除了doobop发布的解决方案之外,还有以下几行:

<Remove FullName="System.FormattableString" />
<Remove FullName="System.IO" />