我的 c# 程序是一个编程语言解释器,基本可执行文件工作正常。但我正在尝试创建一个“捆绑程序”命令,它将文本文件(可能是资源文件或其他文件)与解释器可执行文件捆绑在一起。因此,当运行捆绑的 exe 时,它会检测到存在捆绑的资源文件并执行该文件。
这类似于 nexe 与 Node.JS 的配合方式。
如果可能,这应该完全用 C# 完成,以便解释器可执行文件可以直接创建包。
我尝试过使用 Mono.Cecil:
var module = Mono.Cecil.AssemblyDefinition.ReadAssembly("z.exe");
var file = new EmbeddedResource(
"program.zr",
Mono.Cecil.ManifestResourceAttributes.Public,
File.ReadAllBytes("a.zr")
);
module.MainModule.Resources.Add(file);
module.Write("c.exe");
但是,这给了我
System.BadImageFormatException: 'Format of the executable (.exe) or library (.dll) is invalid.'
我尝试将其发布为单个 exe、x86 和 x64,但仍然出现相同的错误。 我尝试到处搜索但找不到有效的东西。