我从以下代码中得到一个 ReflectionTypeLoadException :
var myAssembly = Assembly.LoadFrom(myDLL);
var types = myAssembly.GetTypes())
myDLL 引用了另一个程序集中的另一个文件(“myDependency.dll”)中的一个类,
我确保该文件位于应用程序目录中,并且与“myDLL”文件位于同一文件夹中。
在这种情况下如何能够正确加载 myDLL?
我从以下代码中得到一个 ReflectionTypeLoadException :
var myAssembly = Assembly.LoadFrom(myDLL);
var types = myAssembly.GetTypes())
myDLL 引用了另一个程序集中的另一个文件(“myDependency.dll”)中的一个类,
我确保该文件位于应用程序目录中,并且与“myDLL”文件位于同一文件夹中。
在这种情况下如何能够正确加载 myDLL?
我会尝试打电话:
AssemblyName[] referenced = myAssembly.GetReferencedAssemblies();
然后在调用之前遍历 AssemblyName 对象并尝试加载这些对象myAssembly.GetTypes()
确保您的所有程序集(dll 和 exe 包括引用的程序集)都是最新的(平台、配置和版本/构建日期)并且在您的 exe 目录中。
尝试在构建之前删除所有项目的 OBJ 和 BIN 目录以帮助验证这一点。
确保 GAC 中没有其他版本或 %PATH% 中的目录。
好吧,我很自豪地宣布,我已经在 Visual Studio 2010 (我猜)引起的一些愚蠢的“眼睛持久性”现象上宠坏了我的星期五晚上。我只是将我的 DependencyDLL 项目复制粘贴到一个全新的程序集/项目中,删除旧的,更新旧的引用以指向新的 DependencyDLLNew,然后瞧:成功了。问题解决了。感谢那些帮助过的人。