这是我第一次尝试使用NUnit。我已经使用NuGet将NUnit安装到我的Visual Studio项目中。如下图所示,它引用了nunit.framework,版本2.6.1.12217 ......
...然后我安装了最新的Windows应用程序(NUnit-2.6.1.msi)....
...并尝试加载我的测试程序集......
...但由于某种原因,它期待nunit.framework的版本2.5.10.11092。
我知道我做错了吗?
答案 0 :(得分:5)
另一种可能性是您引用了第三方程序集,该程序集具有对特定版本的nunit.framework的引用。
例如,我遇到了同样的问题,因为我引用了TeamAgile.UnitTestExtensions.dll
要检查特定程序集是否具有对nunit.framework.dll的引用,请使用ILDASM并检查extern
中的MANIFEST
元数据。
从截图中可以看出,这个程序集引用了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>
...
答案 1 :(得分:0)
您的一个测试项目(或他们引用的第三方/项目)引用了该特定版本。检查引用NUnit的所有csproj文件并查找该版本。
一种简单的方法是确保在* .csproj中“搜索文件”中的“ 2.5.10.11092 ”(我使用notepad ++)。
如果在任何地方都没有特定的旧版本参考,那么旧版本可能仍然在GAC中 - 尝试专门引用新版本,并且应该“赢”它。
编辑 - 参考示例:
<Reference Include="nunit.framework">
<HintPath>..\..\..\ExternalLibrary\NUnit\nunit.framework.dll</HintPath>
</Reference>