为什么NUnit期望使用较旧版本的框架?

Ste*_*uer 2 .net nunit unit-testing visual-studio-2010

这是我第一次尝试使用NUnit。我已经使用NuGet将NUnit安装到Visual Studio项目中。如您在下图中所看到的,它引用了版本2.6.1.12217的nunit.framework ...

Visual Studio项目

...然后我安装了最新的Windows应用(NUnit-2.6.1.msi)。

Windows应用程式

...并尝试加载我的测试程序...

加载失败

...但是由于某些原因,它期望使用nunit.framework的2.5.10.11092版本。

知道我做错了什么吗?

Cat*_*h22 5

另一种可能性是您引用的第三方程序集具有对特定版本的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>
      ...
Run Code Online (Sandbox Code Playgroud)