Как я могу отредактировать ресурсы exe (Описание файла, Значок и т. Д.), Используя утилиту командной строки? - PullRequest
8 голосов
/ 22 мая 2010

Вся история: Я создал необычную программу .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 ]

7 голосов
/ 22 мая 2010

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

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

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

3 голосов
/ 09 декабря 2012

Отвечая только на вопрос информации о версии файла, вы можете включить свою собственную информацию о версии в файл 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

3 голосов
/ 22 мая 2010

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

...