繁体   English   中英

NUnit无法使用字符串键名加载dll

[英]NUnit unable to load dll with String Key Name

我有一个项目,其中有一些C#类,这些类是在ant脚本中使用csc构建的。 我还编写了一些要使用NUnit2.6进行测试的单元测试,如果我在GAC中安装了DLL,我的测试类和实际类都引用了一个用字符串键名(.snk)编译的DLL。 / i myDLL.dll),一切正常。 当我从gac卸载此DLL时,当我尝试使用NUnit运行测试时,在构建期间的所有测试都会出现以下错误;

Test Error : fromJDynTest1
 [exec]    System.IO.FileNotFoundException : Could not load file or assembly 'myDLL, Version=5.1.0.0, Culture=neutral, PublicKeyToken=c0409b584f86b2d6' or one of its dependencies. The system cannot find the file specified.
 [exec]    at fromJDynTest1()
...
...

有谁知道如何解决这个问题。 让我知道您是否需要其他信息。

谢谢

-

俊城

当您将要测试的代码放入GAC中时,看不到有问题的程序集,它可以看到程序集。 您需要确保编译时正在测试的代码在bin目录中具有该程序集(也许在程序集引用上的项目中将copy local设置为false)。

我确定它不是依赖项(在消息中提到)的原因是,当将程序集放置在gac中时,情况已解决。 因为程序集是强命名的,所以不太可能导致此错误。

无法通过测试代码引用程序集,并且该测试代码没有引用或存在相同的问题(不在其编译目录中)。

如果您发布了项目的实际测试或结构会有所帮助。

.net按以下方式查找程序集:

  1. 通过检查适用的配置文件(包括应用程序配置文件,发布者策略文件和计算机配置文件)来确定正确的程序集版本。 如果配置文件位于远程计算机上,则运行时必须首先找到并下载应用程序配置文件。
  2. 检查程序集名称之前是否已绑定,如果是,则使用先前加载的程序集。 如果之前失败,则现在将再次失败。
  3. 检查gac。 如果在此找到程序集,则运行时将使用此程序集。
  4. 程序集的探针(如果您在文本编辑器中打开.csproj文件,则将看到提示路径,它们会尝试帮助.net查找程序集)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM