web-dev-qa-db-ja.com

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

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

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

62
Jedidja

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

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

いくつかのコメント者が述べたように、これを有効にするにはVisual Studioを再起動する必要がある場合もあります。

98
Jedidja

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

あなたの解決策は機能しませんでしたが、 チャールズ・スターリングによるこの投稿 は助けになりました。

次の行を使用しました。

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

この問題が発生し、「ブロック解除」を数分より長く続けようとする試み、および/またはcaspolを理解できなかったため、ようやくは、アセンブリを元のソースの場所から再コピーするため、次回プロジェクトをビルドまたは再ビルドするときに、アセンブリが再びブロックされることをGoogle経由で少し見つけました。 (これがリファレンスアセンブリで以前に起こったことに気づいたことはないと思いますが、とにかく...)

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

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

  2. Visual Studioで参照を削除する

  3. Binフォルダー内のDLLを物理的に削除する

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

  5. 保持スポットからVisual Studioに参照を追加します

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

10
user65286

XPマシンで実行しています(.NET 3.5 SP1がインストールされている場合でも))ここに記載されている他のソリューションを機能させることができませんでした。

しかし、Davy Landmanが参照している同じ Charles Sterlingによる投稿 から作業しているので、このバリエーションでようやく成功しました。

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

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

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

8
Eric

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

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

4
Casey Burns

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

その属性のチェックを外して適用し、ブロック解除を選択した後で初めて、実際に機能しました。

それを試してみてください。

:)

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

3
Adam Chidgey

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

1
Simon Hohenadl
  • fileに移動します
  • 右クリックしてPropertiesを選択します
  • 最初の登録でAllowをクリックします
1
Yoel

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

0
haughtonomous

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

0
Deano