ViewModel で使用されるさまざまなコマンドをテストする単体テスト プロジェクトを含む .NET 4.0 の WPF ソリューションがあります。すべてが正常に機能していましたが、.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 ディレクトリ内から参照を取得しています。その参照を以前の状態に手動で復元しました。しかし、運がありません。
2. のアセンブリICommand
:
は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 をアンインストールすることは解決策にはなりません。
確認するために、別のマシンでソリューションを使用し、VS2012 ではなく .NET 4.5 のみをインストールして、ビルドを試みました。でも同じ話。したがって、この問題は VS2012 とは関係なく、.NET 4.0 と .NET 4.5 の間で競合しているものです。これを反映するために、質問のタイトルを変更します。