Как я могу редактировать ресурсы 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