正如问题所述,如何使用Mono.Cecil编辑已编译的可执行文件的程序集信息? 我尝试使用FileVersionInfo,但它是只读的,我开始知道Mono.Cecil / dnlib有可能。
答案 0 :(得分:0)
我知道这个问题已经有几个月了,但是,无论如何我都会发布我的答案,也许有人可以在将来从中获利。
首先,dnlib / Mono.Cecil还没有内置功能来修改AssembyInfo .NET可执行文件或DLL。
但我可以建议您使用Daniel Doubrovkine的resourcelib。
这是为这个purpouse创造的。 以下是如何使用它的示例:
VersionResource versionResource = new VersionResource();
versionResource.LoadFrom("C:\\MyFile.exe");
StringFileInfo stringFileInfo = (StringFileInfo)versionResource["StringFileInfo"];
versionResource["StringFileInfo"];
stringFileInfo["CompanyName"] = "My Company";
stringFileInfo["FileDescription"] = "This is a file";
stringFileInfo["ProductName"] = "My awesome product";
stringFileInfo["LegalCopyright"] = "Copyright Me";
您可以像这样保存更改:
versionResource.SaveTo("C:\\MyFile-patched.exe");