最近、Microsoft Visual Studio 2013 Update 3(Premiumエディション)からMicrosoft Visual Studio 2013 Update 4(Premiumエディション)にアップグレードしたところ、既存の単体テストプロジェクトのコンパイルが停止しました。それはエラーで失敗します:
タイプ 'Microsoft.QualityTools.Testing.Fakes.Stubs.StubBase`1'は、参照されていないアセンブリで定義されています。アセンブリ 'Microsoft.QualityTools.Testing.Fakes、Version = 12.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a'への参照を追加する必要があります
他の多くの人々と同様に、VS2013でバグが導入された同様の問題がありました。この問題は、(ファイルエクスプローラーまたはすべてのファイルの表示を有効にしたソリューションエクスプローラーを介して).messagesファイルを手動で削除することで解決できます。プロジェクトフォルダ。ただし、FakesAssembliesフォルダー全体を削除しても問題は解決しません。
プロジェクトへの参照(正しいバージョンを含む)はプロジェクト内のものです。参照を削除して再追加しましたが、効果がなく、コンパイルに失敗します。
単体テストプロジェクトは、Visual Studio 2013 Update 3を使用してコンパイルし、他の同僚のマシンに渡します。
MSの偽物を使用した新しいプロジェクトの単体テストプロジェクトもビルドに失敗します。
それでは、Update 4をアンインストールすると、他に何か試すことができますか?
そうでない場合は、Microsoft Connectのバグを記録します。
Shimsに関連するいくつかのエラーがありましたが、これらをスタブに変換しました。
すべてのプロジェクトをこの方法で手動でアップグレードする必要があり、ビルドサーバーを含むすべてのVSインスタンスをアップグレードしました。
Microsoft.QualityTools.Testing.Fakes
の参照プロパティで、"Specific Version"プロパティをFALSE
に変更します。そうすることで、マシンにインストールされているMicrosoft.QualityTools.Testing.Fakes
のどのバージョンでもVisual Studio 2013で使用できるようになります。
Visual Studio 2013 Update 4では、Microsoft.QualityTools.Testing.Fakes.dll
のバージョン番号が11.0から12.0に増えました。これが物事を壊した原因です。
以下のアセンブリを追加して、ソリューションを再構築しました。それは私のために働き始めました。 A:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.QualityTools.Testing.Fakes.dll
B. C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
プロジェクト全体をクリーンアップして、もう一度コンパイルしてみてください。これでうまくいきました。
ここですべての答えを試した後、それは最終的に私のために働きました。コード:
using (ShimsContext.Create())
(慣れている)投げる:
ライブラリ 'C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\Team Tools\Performance Tools\vsperfcorprof.dll'から関数SetDetourProviderのアドレスを取得できませんでした。
私のテストプロジェクトは2012年に実行されています。次のDLLをこれらに置き換えました。
それらは次の場所にあります:
C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies \
それが役に立てば幸い。