我正在开始一个新的解决方案,其中包含6个项目,2个类库,一个网站和一个单元测试项目。
我无法为其中一个类库设置单元测试。这个库使用实体框架,我想模拟数据库上下文来测试各种函数。这些函数在从网站和其他类库中引用时有效,但在单元测试项目中没有。
当我尝试运行引用该库的单元测试时,出现错误:
System.IO.FileNotFoundException:无法加载文件或程序集“ClassLibrary”,Version = 1.0.0.0,Culture = en-US,PublicKeyToken = null 或其中一个依赖项。系统找不到该文件 specified.WRN:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。 注意:程序集绑定失败日志记录会导致一些性能损失。 要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。
现在错误非常简单,它无法找到类库的dll。然而,解决方案并非如此简单。我花了几个小时谷歌搜索和尝试不同的东西。这是我到目前为止所尝试的:
目前整个解决方案都很简陋,所以我对任何建议都很灵活。我在我的智慧和谷歌搜索结束。如果您想了解更多信息,请与我们联系。
感谢您的帮助,
克里斯
答案 0 :(得分:2)
与Microsoft Unit Testing failure, unable to load DLL to test类似,如果您将AssemblyCulture设置为任何内容,则引用将不再起作用。我认为这个问题/答案可以保持不变,因为我无法通过搜索找到另一个。我很幸运能在相关部分偶然发现它。
基本上:确保在单元测试项目和正在测试的项目的AssemblyInfo.cs中,AssemblyCulture是一个空字符串:
[assembly: AssemblyCulture("")]