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

Car*_*rra 9 .net microsoft-fakes visual-studio-2013 visual-studio-2015

我已经安装了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"更高的版本.

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

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

对此有任何修复?

doo*_*bop 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'
Run Code Online (Sandbox Code Playgroud)

然后可以从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>
Run Code Online (Sandbox Code Playgroud)

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

这是一个Microsoft问题报告,这是我得到解决方法的地方.