我有一个.NET 4.0 WPF解决方案,其中包含一个单元测试项目,用于测试视图模型中使用的不同命令。一切都很好。然后我安装了.NET framework 4.5,然后安装了VS2012,并开始收到错误消息,如 -
XYZProject.UsersViewModel_Accessor.AddUserToAccountsCommand' is not supported by the language
在安装VS2012之前,{ - 1}}是从 -
引用的 UnitTestFramework.dll
已更改为引用 -
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\
所以它从VS2012中获取了引用,我手动恢复了该引用。但没有运气。
C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v4.0
是AddUserToAccountsCommand
对象,它位于.NET 4.0中的ICommand
中,但位于.NET 4.5中的PresentationCore.dll
中。所以我也检查了这些参考文献,它们似乎就像以前一样。
错误消息仅显示将测试目标创建为System.dll
等访问者的位置,表示以下代码生成错误 -
UsersViewModel_Accessor
但是如果使用viewmodel类型直接创建测试目标,如下所示 -
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);
没有错误发生,项目构建成功。那么,有人可以分享任何想法吗?
编辑:开始收到错误后我还安装了VS2010 SP1。仍然没有运气。
EDIT2:在同一台机器上我也需要将VS2012用于其他项目,因此它不会是卸载.NET 4.5或VS2012的解决方案。只是为了检查,我把解决方案放在另一台机器上,这次只安装了.NET 4.5,而不是VS2012,并尝试构建项目。相同的故事。所以,这个问题与VS2012无关,它与.NET 4.0和.NET 4.5框架之间存在冲突。为了反映这一点,我正在改变问题的标题。