在.NET应用程序中嵌入EXE和所需的DLL,并在运行时执行

时间:2010-12-30 18:57:43

标签: c# assemblies unmanaged

我有一个现有的EXE和DLL文件(都是非托管的)我理想地想要嵌入我的C#应用​​程序并在C#应用程序的运行时执行。 EXE通过命令行或Explorer正常执行时,要求DLL与EXE位于同一目录中。我怎么能够:

1)将EXE和DLL嵌入我的应用程序并通过C#代码执行它们? 2)确保EXE能够访问其从属DLL文件吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

将它们放入Project embedded Resources中 当程序运行时从资源中提取它们,复制到已知位置并通过Process.Start执行

答案 1 :(得分:3)

将文件添加为嵌入资源。然后,您可以将它们导出到代码中的任何位置。使用System.Diagnostics.Process类来运行它。

编辑: 您可能还希望缓存位置名称,以便在C#应用程序退出时可以删除文件(如果您希望自己很好并且在自己之后进行清理)

答案 2 :(得分:1)

有一次成功使用的.NETZ。似乎该工具在某种程度上也supports native unmanaged DLLs

也许它有助于作为一个指针,为您提供实际所需解决方案的一些想法。