web-dev-qa-db-ja.com

NUnitアセンブリが見つかりません

私は以前にNUnitを使用したことがありますが、しばらくは使用しておらず、このマシンでは使用していません。 Program Filesでバージョン2.4.8を解凍しましたが、テストを読み込もうとするとこのエラーが発生し続けます。

ファイルまたはアセンブリ 'nunit.framework、Version = 2.4.8.0、Culture = neutral、PublicKeyToken = 96d09a1eb7f44a77'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません**

問題を単純化するために、可能な限り最も基本的なテストファイルをコンパイルしました。

using NUnit.Framework;

namespace test
{
    [TestFixture]
    public class Tester
    {
        [Test]
        public void ATest()
        {
            Assert.IsTrue( false, "At least the test ran!" );
        }
    }
}

「C:\ ProgramFiles\NUnit-2.4.8-net-2.0\bin」をPATHに追加しました(そして再起動しました)。テストアセンブリをそのフォルダーにコピーすると、

 C:\ Program Files\NUnit-2.4.8-net-2.0\bin> nunit-console test.dll 

動作しますが

 C:\ Program Files\NUnit-2.4.8-net-2.0\bin> nunit-console c:\ dev\nunit_test\test.dll 

そして

 C:\ dev\nunit_test> nunit_console test.dll 

上記のエラーで失敗します。

おそらく、NUnit.Framework dllをプロジェクトのbinフォルダーにコピーすることでこれを回避できたと思いますが、過去にこれを実行しなければならなかったことを覚えていません。さらに、GUIでも同じエラーが発生します。 GUIは、フレームワークがどこにあるか(つまり、同じフォルダー内にあるか)を認識すべきではありませんか?

@Scott、私はVisualStudioを使用していません。次の行を使用して、テストプロジェクトをコンパイルします。

%windir%\ Microsoft.NET\Framework\v2.0.50727\csc.exe/r: "C:\ Program Files\NUnit-2.4.8-net-2.0\bin\nunit.framework.dll"/t:library /out:test.dll test.cs 

@devio、私はmsiとZipの両方を試しましたが同じ結果になりました。

20
harpo

NUnit-2.4.8-net-2.0.msiを使用してインストールする場合、NUnitアセンブリはGACに追加されます。

VS2005コマンドプロンプトからgacutilを実行して手動で再インストールすることもできます。

9
devio

Nunit.frameworkへの参照を追加したことを確認してください。持っている場合は、その参照のプロパティでコピーローカルプロパティがtrueに設定されていることを確認してください。

12
Scott Pedersen

同じ問題が発生し、NUnit-2.4.8-net-2.0.msiを使用してインストールしました。上記の「gacに追加」コメントを拡張して、これが私がしたことです:

  • 「visualsudiocommand Prompt(通常:gacutilがパスにあることを確認してください)」を開き、cd "C:\ Program Files\NUnit 2.4.8\bin"

  • Gacからnunitエントリの登録を解除します。これを行うには、gacに登録されているnunitエントリを見つけます。

gacutil/l |/i "nunit"> temp.bat && notepadtemp.batを検索します

  • Nunit.core行とnunit.framework行の前に「gacutil/uf」を付けます。例:

gacutil/uf nunit.core、Version = 2.4.2.0、Culture = neutral、PublicKeyToken = 96d09a1eb7f44a77

gacutil/uf nunit.framework、Version = 2.4.2.0、Culture = neutral、PublicKeyToken = 96d09a1eb7f44a77

  • それらを削除するには、batファイルを実行します:temp.bat

  • 必要なnunitdllを登録します。

gacutil/i nunit.core.dll

gacutil/i nunit.framework.dll

11
Jeffrey Knight

現在のNUnitインストール(2.5.10)は、GACに自動的に登録されないことに注意してください。 GACを使用する必要がある場合は、gacutil/iを介して登録します。nunitframeworkpathは通常%Program Files%\ NUnit\net-2.0\framework\nunit-framework

2
Juancentro

今日、既存のNUnitテストプロジェクトに新しいテストアセンブリを追加しようとしたときに、このエラーメッセージが表示されました。私のテストプロジェクトには、同一のnunit.framework.dllアセンブリへの複数のパス参照があったようです。

NUnitプロジェクトに複数のテストアセンブリがある場合は、テストプロジェクトのnunit.framework参照のPathプロパティを確認することをお勧めします。それらを一致させると、エラーメッセージは消えました。

1
Curt