如何绑定/合并一个exe到我的程序

本文关键字:exe 一个 我的 程序 合并 何绑定 绑定 | 更新日期: 2023-09-27 17:50:20

我使用System.Diagnostics.Process.Start("my.exe");调用exe

现在我可以调用我的。exe,我想绑定/合并到我的c#应用程序中,以便当我构建我的应用程序时,我可以得到projectName'Debug'builtProgram.exe或任何其他方式内构建的exe,最终得到一个单一的exe文件与我想要的exe文件在里面。

例如,假设我创建了一个程序a,我想把它封装在另一个程序B中,这个程序B只包含一个按钮"启动程序a"。假设程序B是可移植的——只需要一个exe文件。问题是,如何创建程序B?

如何绑定/合并一个exe到我的程序

您可以将.exe作为内嵌资源包含在。net程序集中,然后在启动时将其转储到磁盘中的临时文件:

var thisAssembly = Assembly.GetExecutingAssembly();
var executableFileName = Path.GetTempFileName();
using(resourceStream = thisAssembly.GetManifestResourceStream("name.of.resource.exe"))
using(fileStream = File.Create(executableFileName))
{
     resourceStream.CopyTo(fileStream);
}

那么你就像平时那样调用它。

Process.Start(executableFileName);

由于我很难提取嵌入式资源。
以下是我的答案:

        public static void getbytez(string file, string outp)
    {
        byte[] buffer = File.ReadAllBytes(file);
        string base64Encoded = Convert.ToBase64String(buffer);
        File.WriteAllText(outp+ ".txt", base64Encoded);
        //copy the base64encoded text.
        //Code by CursedGmod. credit me please :D
    }
    public static void extract2idk(string txtfile, string outp, string exten)
    {
        byte[] gu = Convert.FromBase64String(txtfile);
        // use it like this: byte[] gu = Convert.FromBase64String(your base64 converted text that you copied from the txt file);
        // or use File.ReadAllText if you're making a stub builder.
        File.WriteAllBytes(outp + exten, gu);
        Process.Start(Environment.ExpandEnvironmentVariables("%TEMP%") + Path.GetFileName(txtfile));
    }