这很奇怪.
我有一个Windows应用程序,使用动态加载DLL Reflection.Assembly.LoadFrom(dll_file_name_here).
它按预期工作,直到我用另一个DLL ILMerge应用程序.
所以这种情况很好:
一旦我ILMerge MyApp.exe和MyAppComponent.dll导致:
调用Reflection.Assembly.LoadFrom("Plugin.dll")似乎加载成功,但是一旦我尝试用它做任何事情,例如:
foreach ( typeAsm in Reflection.Assembly.LoadFrom("Plugin.dll"))
Run Code Online (Sandbox Code Playgroud)
我得到一个异常"无法加载一个或多个请求的类型.检索加载器例外属性以获取更多信息".
令人沮丧的是我无法真正调试它,因为调试预合并工作完美!
救命?
我的猜测是 Plugin.dll 引用了 MyApp.exe 或 MyAppComponent.dll,它们不是二进制兼容的 (MyApp.exe) 或在 ILMerging 后根本不存在 (MyApp.dll)。
如果是这种情况,您不应该对它们进行 ILMerge。
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |