这是我的情况:
我有三个项目:两个DLL和一个控制台应用程序,我们称它们为foo.dll、bar.dll和console.exe。Console.exe使用Assembly.LoadFile(@“c:\ foo.dll”)加载foo.dll。Foo.dll的项目引用了bar.dll并使用了一个类。Console.exe可以正常加载foo.dll,但当foo.dll尝试使用bar.dll的类时出现问题。我收到了一个“无法加载程序集:“bar.dll”blah blah异常。
以下是一些要点:
- 所有项目都经过强名称
- 不希望使用GAC
- Bar.dll在c:\bar.dll中
所以一切都在同一个本地目录中,正确的dll被引用(通过项目属性,并且我使用Reflector确保程序集版本正确)。如果我将bar.dll安装到GAC中,一切都按预期工作。
我认为这与Assembly.LoadFile调用有关,以及跳转到第二个DLL,但我不确定。
感谢您的时间和意见。