8

我已经安装了Visual Studio 2015作为一个尝试,从那时起我的单元测试使用假货将不再编译,甚至不在VS 2013上。单元测试项目的目标。净4.5。假装在安装Visual Studio 2015后停止工作

Msdn建议更改目标框架版本。如果我将目标框架更改为4.6,但我无法将我的项目更新到.NET 4.6,因为每个开发人员都必须立即更新,所以错误消失了。

错误,我得到:

主要参考“mscorlib.4.0.0.0.Fakes”无法解析 ,因为它是对” .NETFramework,版本= 4.6 fraemwork内置这是。更高的版本比当前目标 框架” .NETFramework,版本= 4.5"

我也试图删除假货和重建他们,但他们不建,我得到的错误是这样的:

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

对此有任何修复?

+0

到目前为止,我的解决方法是删除所有的假货,并与RhinoMocks替换它们。 .. – Carra

回答

13

您可能可以删除问题类。如果您的构建输出有像

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 problem报告,这是我得到解决方法。

1

我不得不提的是,除了张贴doobop,这为我工作的解决方案,也被要求下面几行:

<Remove FullName="System.FormattableString" /> 
<Remove FullName="System.IO" /> 
相关问题