有人知道如何将 exe 文件嵌入到 dll 中吗?

我有一个工具,它是我从 C# 代码调用的 exe 文件。

问题是我想要 1 个包含此工具(exe 文件)的 dll,并且该 dll 包含我的 C# 代码。

是否可以将此exe文件嵌入到资源中?

提前谢谢

有帮助吗?

解决方案

确保它是。你可以添加的任何文件作为RC_DATA在应用程序作为资源。但是我相信你会需要提取到磁盘之前,首先叫它!

这IDE/语言使用?

[编辑]

对不起!你有没有说过您使用。

  1. 增加资源文件应用程序(右键应用程序在IDE和选择"增加新的项目"。
  2. 使用的工具栏中的资源的编辑,以增加现有文件。
  3. 然后取exe需要时通过调用的代码这样的:系统。IO.文件。WriteAllBytes(@"C:\MyEXE\",Resource1.MyEXE);

其他提示

这是值得霸菱记住,你的应用可能不会太高兴你这样做。嵌入他们已经得到了无法控制的成DLL,你会压缩并运行可能会让人可执行担心自己的机器上运行的木马程序。

这是更好地离开.EXE的文件系统和透明公开你的应用程序在做。

可以从一个字节[]加载程序集。这可以通过嵌入式资源的ManifestResourceStream来获得。

另一种方法可能是不嵌入 .exe 本身,而是将其功能包含在 dll 中,并使用 rundll32[1] 来执行它。

在一个侧面说明,请记住,当你从你的资源到磁盘拉一个文件,然后在其上执行代码,您可能会触发的Windows的数据执行保护 - 基本上,Windows会尝试如果事情应该是代码或数据自动检测,如果它看起来像数据(资源会),那么它会阻止从数据被执行作为代码。

这成为,如果你的.NET程序集是要在网络上,而不是从本地驱动器使用一个特别艰难的问题 - 有可能避免这种正常工作.NET安全配置的各种

另一种选择,不知道你的项目的细节,借此与一粒盐:添加一个.exe.readme文件到你的安装说明任何好奇的用户或IT人为什么有他们间没有”可执行吨在安装目录期待:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top