我在 .NET 4.0 中有一个 WPF 解决方案,其中包括一个单元测试项目,用于测试 ViewModel 中使用的不同命令。一切正常,但后来我安装了 .NET 4.5 和 VS2012。
现在,当我尝试构建解决方案时,我收到错误消息,例如 -
语言不支持 SomeProject.UsersViewModel_Accessor.AddUserToAccountsCommand'
我注意到并尝试了以下方法 -
1.参考UnitTestFramework.dll
:
在安装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 目录中获取参考。我手动恢复了对先前状态的引用。但没有运气。
ICommand
2.组装:AddUserToAccountsCommand
是一个ICommand
对象,在 .NET 4.0 中它驻留在PresentationCore.dll
. 但是,在 .NET 4.5 中,它位于System.dll
. 所以我也检查了这些参考资料,但它们看起来还不错,就像以前一样。
3. 测试目标
的实例化:错误消息仅在测试目标被创建为访问器的地方显示,如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);
以下代码不 -
UsersViewModel target = new UsersViewModel();
Assert.IsTrue(target.AddUserToAccountsCommand.CanExecute(null), "Failed to perform can exetuce of add user command");
target.AddUserToAccountsCommand.Execute(null);
那么,任何人都可以分享有关此问题的确切原因以及如何解决的任何想法吗?
编辑:
开始收到错误后,我还安装了 VS2010 SP1。仍然没有运气。
EDIT-2:
在同一台机器上,我也需要将 VS2012 用于其他项目。所以卸载 .NET 4.5/VS2012 不是解决方案。
只是为了检查,我在另一台机器上采用了解决方案,仅安装了 .NET 4.5,而不是 VS2012,并尝试构建。但同样的故事。所以,这个问题与 VS2012 无关,它是 .NET 4.0 和 .NET 4.5 之间的冲突。为了反映这一点,我将更改问题的标题。