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

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

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

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

Я искал некоторое время и могу найти только одну программу, которая делает именно то, что я хочу (консоль ResourceTuner: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 это касается значков (включая сохранение их в exe-файлы).

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


вы смотрели 'reshacker' АКА 'ресурс хакер'? Он в основном продвигается как инструмент gui, но файл справки говорит, что все его функции можно получить с помощью сценариев командной строки. Я использовал его форму gui для изменения значков внутри exe, и это позволит вам также использовать другие встроенные ресурсы. Просто google для "хакера ресурсов", текущая версия выглядит как 3.4.0


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

в основном, в рамках .Файл 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,