kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studio 2017でMStestが実行できない場合の対処(System.Runtime, Version=4.1.1.0または依存関係の1つが読み込めないエラー)

二日ほどドはまりしました。Visual Studio 2017(15.7.1)でフル .NETでプログラムを作っていたのですが、ある日からMSTestを使ったUnit testの実行時こんなエラーが出るようになりました。

実行プログラム 'executor://mstestadapter/v2' の呼び出し中に例外が発生しました: 
ファイルまたはアセンブリ 'System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'、
またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。

ターゲットフレームワークを 4.5から4.7.2までいろいろ変えても駄目。どうもNuGetからライブラリーを追加してからのようで、プロジェクトテンプレートから作ったような足し算するような素のプロジェクトでは起きません。

csprojの 方法: 自動バインディング リダイレクトを有効/無効にする | Microsoft Docsを無効にするという方法も駄目。探しまくったら対処方法がありました。

github.com

  • MSTestのプロジェクトテンプレートに追加されているMicrosoft.VisualStudio.TestPlatform.TestFrameworkと同Extensionsを削除する
  • 代わりに参照からC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll" を追加する

「単体テストを作る」から作ったMSTestの参照状態。

f:id:kkamegawa:20180516142712p:plain

この状態だと実行できないですが、Microsoft.VisualStudio.TestPlatform.TestFrameworkで始まるアセンブリを二つ消して、前述のC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dllを追加します。

こんな感じになっていれば実行できるはずです。少なくとも私は大丈夫でした。

f:id:kkamegawa:20180516142521p:plain