如何绑定/合并一个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作为内嵌资源包含在。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));
}