Как я могу редактировать ресурсы exe (описание файла, значок и т. Д.) С помощью утилиты командной строки?

Вся история: я создал необычную программу.NET, в которой есть установщик, созданный установщиком Visual Studio (VSI). VSI создает 2 файла (setup.exe и MyProgramSetup.msi). Я понимаю причины, по которым нужны оба файла, однако я хочу только распространить ОДНО исполняемый установщик среди пользователей. Я не хочу, чтобы они видели 2 файла и должны выбирать между ними.

Чтобы сделать это, я слил 2 файла в самораспаковывающийся архив с помощью IExpress (как видно из этого ответа: Merge msi и exe). Это работает хорошо, однако, самораспаковывающийся архив, который создается, имеет ужасный значок и запутанную информацию о файле (описание файла - "Win32 Cabinet Self-Extractor" с 43 пробелами после него).

Мне нужно заменить значок на свой собственный и изменить некоторые свойства файла, такие как "Описание", "Компания" и т. Д. Я хотел бы, чтобы это автоматически делалось в качестве шага сборки, поэтому при наличии программы, являющейся командной строкой / консольная утилита была бы отличной.

Я искал некоторое время и могу найти только одну программу, которая делает именно то, что я хочу (ResourceTuner Console: http://www.heaventools.com/command-line_resource_editor.htm), но это стоит руки и ноги, и мой бюджет составляет 0 долларов США.

Кто-нибудь знает лучший способ добиться того, чего я хочу, или знает о программе, которая может заменить ресурсы исполняемого файла без использования графического интерфейса?

Кстати, я также пробовал SiComponents Resource Builder 3, который не может даже открыть исполняемый файл, и ResEdit, который просто падает, когда я выполняю команду:

resedit.exe -convert "Modified Resources.rc" "MyProgramSetup.exe"

3 ответа

Решение

Visual Studio может редактировать их, если вы откроете исполняемый файл. Я не уверен, есть ли способ сделать это из командной строки.

Есть достойная статья CodeProject, которая имеет дело с иконками (включая сохранение их в исполняемые файлы).

Название компании, описание и т. Д. Являются частью ресурса Version. Другая статья CodeProject посвящена обновлению ресурса Version, хотя я не рассматривал этот вопрос подробно.

Отвечая только на вопрос с информацией о версии файла, вы можете включить свою собственную информацию о версии в файл IExpress .SED. Этот сайт предоставляет дополнительную информацию о разделах и атрибутах файла IExpress .SED. Использование встроенной функциональности кажется проще, чем пост-обработка программы установки.

В основном, в файл.SED включите ссылку VersionInfo в разделе "Параметры". Затем создайте раздел, содержащий информацию о вашей версии.

[Options]
VersionInfo=VersionSection

[VersionSection]
FromFile= ;Uses the version info in this executable file
; or specify each attribute 
; or specify the FromFile and override individual attributes
FileDescription=
CompanyName=
FileVersion=
ProductVersion=
OriginalFilename=
LegalCopyright=
ProductName=
InternalName=

Кстати, FileVersion не работает для меня. YMMV,

Вы смотрели на 'Reshacker' AKA 'Хакер ресурсов'? Он в основном рекламируется как инструмент графического интерфейса, но в файле справки сказано, что все его функции доступны с помощью сценариев командной строки. Я использовал его графический интерфейс для изменения значков внутри exe, и он позволит вам использовать другие встроенные ресурсы. Просто Google для "хакер ресурсов", текущая версия выглядит как 3.4.0

Другие вопросы по тегам