安装.NET 4.5后,以前的Unit-Test项目无法构建

ati*_*yar 19 wpf .net-4.0 icommand vs-unit-testing-framework .net-4.5

我有一个.NET 4.0 WPF解决方案,其中包含一个单元测试项目,用于测试视图模型中使用的不同命令.一切都很好.然后我安装了.NET framework 4.5然后安装了VS2012,并开始收到如下错误消息 -

XYZProject.UsersViewModel_Accessor.AddUserToAccountsCommand' is not supported by the language

在安装VS2012之前UnitTestFramework.dll,引用了 -

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\

被改为引用 -

C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v4.0

所以它从VS2012中获取了引用,我手动恢复了该引用.但没有运气.

AddUserToAccountsCommand是一个ICommand驻留在PresentationCore.dll.NET 4.0中的对象,但是System.dll在.NET 4.5中.所以我也检查了这些参考文献,它们似乎就像以前一样.

错误消息仅显示创建测试目标的位置,如Access,例如UsersViewModel_Accessor,表示以下代码生成错误 -

UsersViewModel_Accessor target = new UsersViewModel_Accessor();
Assert.IsTrue(target.AddUserToAccountsCommand.CanExecute(null), "Failed to perform can exetuce of add user command");
target.AddUserToAccountsCommand.Execute(null);  
Run Code Online (Sandbox Code Playgroud)

但如果使用viewmodel类型直接创建测试目标,如下所示 -

UsersViewModel target = new UsersViewModel();
Assert.IsTrue(target.AddUserToAccountsCommand.CanExecute(null), "Failed to perform can exetuce of add user command");
target.AddUserToAccountsCommand.Execute(null);  
Run Code Online (Sandbox Code Playgroud)

没有错误发生,项目构建成功.那么,有人可以分享任何想法吗?

编辑:开始收到错误后我也安装了VS2010 SP1.仍然没有运气.

编辑2:在同一台机器上我也需要将VS2012用于其他项目,因此它不会是卸载.NET 4.5或VS2012的解决方案.只是为了检查,我把解决方案放在另一台机器上,这次只安装了.NET 4.5,而不是VS2012,并尝试构建项目.相同的故事.所以,问题与VS2012无关,它是.NET 4.0和.NET 4.5框架之间的冲突.为了反映这一点,我正在改变问题的标题.

小智 0

错误可能是什么的一种想法是不兼容。使用.Net 4.0,有时我总是会遇到这样的情况:当我用不兼容的东西编译代码时,它总是会失败。如果您寻找兼容版本,那就太好了。

通常,应支持 .Net 和 MSCV 库才能正常工作。