2

NUnitを使おうとするのはこれが初めてです。NuGetを使用して、VisualStudioプロジェクトにNUnitをインストールしました。下の画像でわかるように、nunit.frameworkバージョン2.6.1.12217を参照しています...

VisualStudioプロジェクト

...次に、最新のWindowsアプリ(NUnit-2.6.1.msi)をインストールしました。...

Windowsアプリ

...そしてテストアセンブリをロードしようとしました...

ロードに失敗します

...しかし、何らかの理由で、nunit.frameworkのバージョン2.5.10.11092が必要です。

私が何か間違ったことをしているのかどうか何か考えはありますか?

4

2 に答える 2

5

もう1つの可能性は、nunit.frameworkの特定のバージョンを参照しているサードパーティのアセンブリを参照していることです。

たとえば、私はへの参照を持っていたので、私は同じ問題に遭遇しましたTeamAgile.UnitTestExtensions.dll

特定のアセンブリにnunit.framework.dllへの参照があるかどうかを確認するには、ILDASMを使用して、のexternメタデータを確認しMANIFESTます。

ILDASMのスクリーンショット

スクリーンショットからわかるように、このアセンブリにはnunit.frameworkのバージョン2.4.6への参照があります。

この問題を解決するには、アプリケーション構成ファイルにバインディングリダイレクトエントリを追加して、古いバージョンを新しいバージョンにマップします。

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="Neutral" />
        <bindingRedirect oldVersion="2.5.10.11092" newVersion="2.6.1.12217" />
      </dependentAssembly>
      ...
于 2012-12-20T16:27:44.843 に答える
0

テストプロジェクトの1つ(またはそれらによって参照されるサードパーティ/プロジェクト)には、その特定のバージョンへの参照があります。NUnitを参照するすべてのcsprojファイルを調べて、そのバージョンを探します。

確認する簡単な方法は、*。csprojで「ファイルを検索」して「2.5.10.11092」を検索することです(これにはnotepad ++を使用します)。

古いバージョンへの特定の参照がどこにもない場合は、古いバージョンがまだGACに残っている可能性があります-新しいバージョンを具体的に参照してみてください。そうすれば、それに対して「勝つ」はずです。

編集-参照例:

<Reference Include="nunit.framework">
  <HintPath>..\..\..\ExternalLibrary\NUnit\nunit.framework.dll</HintPath>
</Reference>
于 2012-10-16T09:07:23.313 に答える