Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在类库中嵌入exe文件_C#_.net_Dll_Exe_Class Library - Fatal编程技术网

C# 在类库中嵌入exe文件

C# 在类库中嵌入exe文件,c#,.net,dll,exe,class-library,C#,.net,Dll,Exe,Class Library,是否可以在类库(dll文件)中嵌入exe文件 我想使用此exe,而无需手动将其复制到我的工作站。换句话说,如果我想在另一个应用程序中使用我的C#类库,我不需要将这些exe文件复制到文件夹中并在我的应用程序中传递该文件夹的路径 如果有办法做到这一点,那就太好了 抱歉,我的意思是,我使用SeleniumWebDriver创建了一个屏幕截图库,在创建新的Webdriver对象时,我需要传递Webdriver的exe文件。 我最需要的是,如果我将使用此库到另一个工作站,我不想复制exe文件。例如,我希

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

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

如果有办法做到这一点,那就太好了



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

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

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

byte[] exe = Properties.Resources.MyExe;

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

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

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


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

如果此EXE是您自己制作的.NET应用程序,并且有代码,当然,您必须有权将其复制到磁盘,以及复制后执行它的权限。对不起,我的意思是,我使用Selenium Webdriver创建了一个屏幕截图库,在创建新的Webdriver对象时,我需要传递Webdriver的exe文件。我最需要的是,如果我要在其他工作站或其他项目中使用此库,我不想复制exe文件。例如,我希望所有内容都打包在一个文件中