我在nunit.exe
发起尝试时遇到了一个愚蠢的例外:
System.IO.FileNotFoundException:无法加载文件或程序集'nunit.framework,Version = 2.5.5.10112,Culture = neutral,PublicKeyToken = 96d09a1eb7f44a77'或其依赖项之一。系统找不到指定的文件。
NUnit的版本是2.5.9
,是从MSI包安装的,即不同的版本!将库放入可执行文件的根目录没有帮助。 (2.5.5
)的错误相同。
怎么可能?
答案 0 :(得分:3)
NUnit应用程序动态加载NUnit框架,因此查看静态引用的程序集没有多大帮助。
使用the Assembly Binding Log Viewer可以提供有关哪些程序集请求2.5.5程序集的更详细信息。
更新:使用日志查看器跟踪NUnit 2.5.9完成的所有程序集绑定。如果没有立即加载测试程序集,则永远不会加载nunit.framework程序集。 Nunit核心组件是加载的,但只有2.5.9版本。
答案 1 :(得分:1)
它是否正在尝试自动加载使用NUnit 2.5.5编译的测试程序集?
在这种情况下,我宁愿把缺少的NUnit dll放在测试程序集中,而不是NUnit runner。 (通过将其作为构建过程的一部分。在VisualStudio中,如果使用VS,则将CopyLocal属性设置为为NUnit.Framework程序集引用为true。)
答案 2 :(得分:1)
当我将“Copy Local”设置为true并且nunit引用静态路径时,我遇到了这个问题。当我更新nunit时,我更新了路径中的dll,但是在实际的项目文件(csproj)中,它仍然有引用包括Version作为旧版本。手动删除它然后重新添加它,修复它。