繁体   English   中英

在C#命令行应用程序中包含并执行EXE

[英]Include and Execute EXE in C# Command Line App

所以我发现了一个很棒的小EXE命令行应用程序(我们称之为program.exe),它输出了一些我想用C#操作的数据。

我想知道是否有办法将program.exe“打包”到我的visual studio项目文件中,这样我就可以将编译好的应用程序交给同事,而不必将它们发送给program.exe。

任何帮助表示赞赏。

有几种方法可以实现这一目标。 首先,您应该将program.exe添加到项目中。 您可以通过在Visual Studio中右键单击项目,然后选择“添加”>“现有项目...”选择program.exe,它将显示在项目中。 查看其属性,您可以将“复制到输出目录”设置为“始终复制”,它将显示在应用程序旁边的输出目录中。

解决问题的另一种方法是将其作为资源嵌入。 将program.exe添加到项目后,将项目的Build Action属性从Content更改为Embedded Resource。 在运行时,您可以使用Assembly.GetManifestResourceStream提取命令行可执行文件并执行它。

    private static void ExtractApplication(string destinationPath)
    {
        // The resource name is defined in the properties of the embedded
        string resourceName = "program.exe";
        Assembly executingAssembly = Assembly.GetExecutingAssembly();
        Stream resourceStream = executingAssembly.GetManifestResourceStream(resourceName);
        FileStream outputStream = File.Create(destinationPath);
        byte[] buffer = new byte[1024];
        int bytesRead = resourceStream.Read(buffer, 0, buffer.Length);
        while (bytesRead > 0)
        {
            outputStream.Write(buffer, 0, bytesRead);
            bytesRead = resourceStream.Read(buffer, 0, buffer.Length);
        }

        outputStream.Close();
        resourceStream.Close();
    }

您可以尝试以下方法:

try
{
  System.Diagnostics.Process foobar = Process.Start("foobar.exe");
}
catch (Exception error)
{
 // TODO: HANDLE error.Message
}

您可以通过右键单击项目并选择“添加新项”,将任何杂项文件添加到项目中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM