如何将.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() 。 检查你的路径。