如何将.exe加载为.NET程序集?
我可以使用吗?:
Assembly.LoadFile
不确定这是否是这样做的?
但是当我尝试这种方法时,它会抛出一个Could not load file or assembly "CustomControlLib"
或其依赖项之一。 该系统找不到指定的文件。
有任何想法吗?
您需要确保依赖项也已加载到应用程序域中。 如果它们未自动定位,您可以订阅AppDomain.AssemblyResolve
,以便在需要时手动查找和加载程序集。
例如:
private Assembly AssemblyEventHandler(object sender, ResolveEventArgs args) { return locatedAssembly; }
另外,我会考虑使用Assembly.LoadFrom
,特别是在阅读了这篇由nobugz强有力的断言并链接到一些好的阅读之后 (所有过时但都应该在大多数情况下仍能承受。)
是的,您可以像加载Dll一样加载.Net exe。 您获得的错误是由您的exe的依赖性引起的。 确保可以找到这些依赖项,即在汇编搜索路径中。
如果使用Assembly.LoadFrom()
则将从程序集所在的目录中加载依赖项。
Assembly.LoadFile()
忽略同一文件夹中的所有其他DLL和exe文件。
是的,您可以使用Assembly.LoadFile()
。 检查你的路径。