将.exe文件集成到visual studio项目中

时间:2011-07-20 14:48:20

标签: c# visual-studio

破碎到赤裸裸的场景: 我在c#中有一个程序,它在cmd中调用.exe(使用process.start),传递一些必需的参数。

我正在尝试做的事情:将exe包含在项目中,这样我就不必调用cmd了。

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

如果您只想包含,那么您不必运送两个文件,只需将其作为“嵌入式资源”包含在项目中(请参阅项目项选项),然后您可以调用ResourceManager.GetStream并将其写入文件并调用Process.Start。

如果你想整合那个exe的功能,以便不再需要exe(没有Process.Start)那么你需要源代码......

编辑: 如果exe是.NET,则不需要“写入文件” - 然后您可以直接从资源流中将其作为Assembly / AppDomin加载并执行它。

答案 1 :(得分:3)

您可以将exe添加为嵌入式资源(只需右键单击解决方案资源管理器中的文件夹,添加现有项目,然后获取其中的属性并将其设置为嵌入式资源)。但是,您可能无法轻松地执行它 - 您需要将其保存到磁盘然后执行它(这不能解决您所说的必须ShellExecute .exe文件的问题,但确实解决了问题必须向最终用户发送多个文件。)

如果您有源代码,那么您将能够将exe重新打包为dll,或将其直接集成到您的程序代码中。

答案 2 :(得分:1)

如果exe是.NET程序集,则可以使用ILMerge将exe合并到主程序集中。然后,您可以直接在exe中调用代码。