将exe文件嵌入类库中

时间:2014-04-04 14:28:07

标签: c# .net dll exe class-library

是否可以在类库(dll文件)中嵌入exe文件?

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

如果有办法怎么做,那就太好了。


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

2 个答案:

答案 0 :(得分:2)

好吧,技术上你可以在DLL中嵌入二进制文件作为资源(通过项目属性将文件作为二进制资源添加),但是你仍然需要保存文件到磁盘,以便执行它(假设你正在尝试做什么),除非你的应用程序完全受信任,否则可能会出现安全问题。

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

byte[] exe = Properties.Resources.MyExe;

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

答案 1 :(得分:-1)

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

如果你仍然需要将该代码作为一个独立的进程运行,那么没有什么可以阻止你创建一个引用同一个库的新EXE前端。

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