31

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 の間で競合しているものです。これを反映するために、質問のタイトルを変更します。

4

0 に答える 0