将exe文件嵌入类库中

3

有没有可能将exe文件嵌入类库(dll文件)中?

我想在不手动复制到工作站的情况下使用这个exe文件。换句话说,如果我想在另一个应用程序中使用我的C#类库,我就不需要在一个文件夹中复制这些exe文件并传递此文件夹的路径。

如果有办法实现这一点,那就太好了。


抱歉,我的意思只是,我使用Selenium Webdriver创建了一个截图库,当创建新的Webdriver对象时,我需要传递Webdriver的exe文件。 我最需要的是,如果我将此库用于另一台工作站,我不希望复制exe文件,我希望将所有内容打包为一个文件。 谢谢


如果这个EXE是你自己制作的.NET应用程序,并且你有代码吗? - Crono
2个回答

2

从技术上讲,您可以通过将文件添加为二进制资源(通过项目属性)将二进制文件嵌入到DLL中,但是仍然需要将文件保存到磁盘以便执行(我假设这就是您想要做的),并且可能存在安全问题,除非您的应用程序完全受信任。

如果二进制文件是资源,则可以从静态Properties类中提取字节:

byte[] exe = Properties.Resources.MyExe;

并将其像其他字节数组一样保存到磁盘中。


当然,您必须拥有将其复制到磁盘的权利,并在复制后获得执行权限。 - John Saunders
抱歉,我的意思是我用Selenium Webdriver制作了一个截屏库,创建新的webdriver对象时,需要传递webdriver的exe文件。最重要的是,如果我将此库用于另一台工作站或另一个项目,我不想复制exe文件,我希望所有内容都被打包在一个文件中。 - nabil

-1

如果您拥有EXE的代码,最好将其转换为库。然后,您就可以从任何地方引用该库并调用其具有的任何公共功能。这是一种更好的方法。

如果您仍需要将该代码作为独立进程运行,则可以创建一个新的EXE前端,以引用相同的库。

现在,如果您没有代码,则根据部署策略,您可能更喜欢创建可重用的部署组件/模块,以附加到其他应用程序设置中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接