0

正如问题所述,如何使用 Mono.Cecil 编辑已编译可执行文件的程序集信息?我尝试使用 FileVersionInfo,但它是只读的,我知道 Mono.Cecil/dnlib 有可能。

4

1 回答 1

0

我知道这个问题已经有几个月了,但是,无论如何我都会发布我的答案,也许将来有人可以从中获利。

首先,dnlib/Mono.Cecil 还没有内置功能来修改 .NET 可执行文件或 DLL 的 AssembyInfo。

但是我可以推荐你使用Daniel Doubrovkine 的resourcelib

它正是为此目的而创建的。以下是如何使用它的示例:

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");
于 2017-02-13T18:59:27.827 回答