Как редактировать AssemblyInfo, используя Mono.Cecil/dnlib?

Поскольку вопрос гласит, как мне отредактировать информацию о сборке скомпилированного исполняемого файла, используя Mono.Cecil? Я пытался использовать FileVersionInfo, но это только для чтения, и я узнал, что есть возможность с Mono.Cecil/dnlib.

1 ответ

Я знаю, что этому вопросу уже несколько месяцев, однако я в любом случае выкладываю свой ответ, возможно, кто-то может извлечь из него выгоду в будущем.

Во-первых, dnlib/Mono.Cecil еще не имеет встроенной функции для изменения AssembyInfo исполняемого файла.NET или DLL.

Однако я могу порекомендовать вам использовать resourcelib от Daniel Doubrovkine.

Он был создан именно для этой цели. Вот пример того, как его использовать:

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");
Другие вопросы по тегам