Как редактировать 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");