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