ソースアセンブリが信頼されていないため、MSTestの実行が失敗する

StackOverflow https://stackoverflow.com/questions/201327

  •  03-07-2019
  •  | 
  •  

質問

xUnitをテストプロジェクトに追加し(Assertsでは、フレームワークとしてMSTestを使用しています)、すぐにテストの実行がテストの実行を拒否しました。これはエラーメッセージです:

  

テスト実行 '{....}'をキューに入れられませんでした   テスト実行の展開の問題:   ファイルまたはディレクトリの場所   '... xUnit.dll'は信頼されていません。

役に立ちましたか?

解決

Googleで答えを見つけるのに数回の試行が必要だったので、他の誰かが同じ問題に遭遇した場合に備えて、ここに配置します。詳細な説明は、このブログ投稿で見つけることができます。

基本的に、修正プログラムはWindowsエクスプローラーでdllファイル(たとえばxunit.dll)を右クリックし、[プロパティ]に移動して[ブロック解除]をクリックします。 [セキュリティ]テキストの横にあるタブの下部。 Vista / Windows 2008は、他のマシンまたはインターネットからのアセンブリを安全でないものとして自動的にマークするようです。

2、3人のコメンターが述べたように、これを有効にするにはVisual Studioを再起動する必要があります。

他のヒント

私のチームでも同じ問題がありました。

ソリューションは機能しませんでしたが、チャールズスターリングによるこの投稿はヘルプ。

次の行を使用しました:

caspol -machine -addgroup 1 -url file://\\server/share/* FullTrust -name DevShare

この問題が発生し、何時間も「ブロック解除」を取得しようとした後、数分以上固執したり、 caspol が役に立たなかったりすると、Googleを介して、プロジェクトを次回ビルドまたは再ビルドするときにアセンブリが再びブロックされるというちょっとしたヒントを見つけました。元のソースの場所から再コピーされます。 (参照アセンブリでこれが以前に起こったことに気付いたことはないと思いますが、とにかく...)

これに対する私の修正は次のとおりです。

  1. 必要なすべてのDLLを別のDLLにコピーします 安全な場所

  2. 削除 Visual Studioでの参照

  3. DLLを物理的に削除します binフォルダー

  4. DLLのブロックを解除します 彼らがいる場所で個別に コピーされた

  5. 参照を追加します Visual Studioから ホールディングスポット

その後のビルドまたは再構築はすべて正常に機能しました。

XPマシンでの実行(.NET 3.5 SP1がインストールされている場合でも)ここにリストされている他のソリューションを動作させることができなかった。

ただし、同じチャールズスターリングによる投稿がデイビーランドマンが参照している、最終的にこのバリエーションで成功しました:

  1. .NET 2.0構成ツールを実行します(設定...コントロールパネル...管理ツール... .NET Framework 2.0構成)
  2. クリックして"マイコンピュータ...ランタイムセキュリティポリシー...マシン...コードグループ... All_Code"
  3. 「ゾーン」および「ローカルイントラネット」のメンバーシップ条件で新しいコードグループを作成します。許可セット" FullTrust"
  4. を割り当てます
  5. Visual Studioを再起動します

これらの手順の後、再起動や再構築後を含め、テストを実行できます。

編集:この回答で説明されているように、システムに.NET 2.0構成ツールをインストールするために、.NET SDK(.NETフレームワークとは異なる)をインストールする必要がある場合があります。

moqでも同じ問題がありました。しかし、「ブロック解除」しません。ブロックを解除するたびに、まだブロックされていました!?!?

ダウンロードした元のzipファイルのブロックを解除する必要がありました。次に、zipファイルからDLLを再度コピーします。その後も動作します。

今では本当に明白に思えるかもしれませんが、ブロック解除をクリックすると、ファイルは読み取り専用に設定されました。

その属性のチェックを外して適用し、ブロック解除を選択した後にのみ、実際にこれが機能するようになりました。

やりましょう。

:)

PS:Visual Studioで古いDLLが選択されていないことを確認するために、binフォルダー内の古いdllもすべて削除しました。

VistaによってダウンロードされたDLLがブロックされるのと同じ問題がありました。 「ブロック解除」を取得するには管理者権限が必要です。ファイルのプロパティのボタン。 DLLを以前にコミットしたソース管理からの最新バージョンに単純に置き換えました(TFS)。

  • file
  • に移動
  • 右クリックして Properties
  • を選択します
  • 最初の登録で、許可
  • をクリックします

また、notepad ++でファイルを開いて名前を変更しようとしました。 少し異なるアプローチですが、私にとってはうまくいきました。ローカルファイルシステムは、それが同じマシンから来たと考えます。

ブロックを解除する必要があるのはmoq.dllだけではありません。最新のzipファイルにはmoq.xmlおよびmoq.pdbファイルが含まれています。dllを参照すると、これらの他の2つのファイルもbinフォルダーにコピーされます。 3つすべてのブロックが解除されていない場合、テストは実行されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top