c# - 在 C# 中将 Exe 文件作为嵌入式资源运行

标签 c# resources embed exe

我有一个第 3 方 EXE。我只需要从我的 C# 应用程序运行它。

我的主要目标是从我的 C# 文件中获取第 3 方可执行文件的版权。

有没有更好的方法来做到这一点?

我该怎么做?

最佳答案

  1. 首先将嵌入的可执行文件作为资源文件添加到您现有的资源文件中,如果您没有,则需要[将现有项目添加到您的项目中,然后选择资源文件]
  2. 当您在资源编辑器页面中添加可执行文件时,选择类型为[文件],然后找到您嵌入的可执行文件并添加它。例如命名为“subexe.exe”的文件,则资源设计cs文件将添加如下代码:
    internal static byte[] SubExe {
            get {
                object obj = ResourceManager.GetObject("SubExe", resourceCulture);
                return ((byte[])(obj));
            }
        }
    
  3. 添加一个方法来访问你的资源,这也很简单,只需将以下代码添加到你的资源设计器cs文件中

    
    public static byte[] GetSubExe()
        {
            return SubExe;
        }
    

  4. 在您的主要可执行源代码中,添加以下内容以读取资源并将其写入新文件

    
    string tempExeName = Path.Combine(Directory.GetCurrentDirectory(), "A3E5.exe");<p></p>
    
    <pre><code>    using(FileStream fsDst = new FileStream(tempExeName,FileMode.CreateNew,FileAccess.Write))
        {
            byte[] bytes = Resource1.GetSubExe();
    
            fsDst.Write(bytes, 0, bytes.Length);
        }    
    </code></pre>
    
    <p></p>

  5. 使用进程运行新的可执行文件

关于c# - 在 C# 中将 Exe 文件作为嵌入式资源运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15470090/

相关文章:

c# - 如何在 JavaScript 方法中获取 ASP.NET DataGrid 控件的选定行索引?

java - 澄清资源包中写入的数据 - Java

html - YouTube嵌入代码不适用于Firefox的html

audio - 隐藏的src仍会占用空间

javascript - 显示预览文件

c# - 为什么 WPF 的 Dispatcher.Invoke 在主线程上运行时不会导致死锁?

c# - 使用 OAuth 连接到 Windows Azure Active Directory

c# - 在 selenium 和 c# 中移动物理鼠标指针

java - 从 osgi 包访问资源 : bundle scheme in the URL lead to a malformed exception

java - 如何获取项目的/资源文件夹中文件的绝对路径