1

我从以下代码中得到一个 ReflectionTypeLoadException :

var myAssembly = Assembly.LoadFrom(myDLL);    
var types = myAssembly.GetTypes())

myDLL 引用了另一个程序集中的另一个文件(“myDependency.dll”)中的一个类,
我确保该文件位于应用程序目录中,并且与“myDLL”文件位于同一文件夹中。

在这种情况下如何能够正确加载 myDLL?

4

3 回答 3

1

我会尝试打电话:

AssemblyName[] referenced = myAssembly.GetReferencedAssemblies();

然后在调用之前遍历 AssemblyName 对象并尝试加载这些对象myAssembly.GetTypes()

于 2012-06-08T20:31:03.903 回答
1
  1. 确保您的所有程序集(dll 和 exe 包括引用的程序集)都是最新的(平台、配置和版本/构建日期)并且在您的 exe 目录中。

    尝试在构建之前删除所有项目的 OBJ 和 BIN 目录以帮助验证这一点。

  2. 确保 GAC 中没有其他版本或 %PATH% 中的目录。

于 2012-06-08T20:37:38.247 回答
0

好吧,我很自豪地宣布,我已经在 Visual Studio 2010 (我猜)引起的一些愚蠢的“眼睛持久性”现象上宠坏了我的星期五晚上。我只是将我的 DependencyDLL 项目复制粘贴到一个全新的程序集/项目中,删除旧的,更新旧的引用以指向新的 DependencyDLLNew,然后瞧:成功了。问题解决了。感谢那些帮助过的人。

于 2012-06-08T22:04:53.460 回答