Як встановити інформацію про версію для існуючого .exe, .dll?


113

У рамках нашого процесу збирання мені потрібно встановити інформацію про версії для всіх наших складених бінарних файлів. Деякі з бінарних файлів уже мають інформацію про версію (додається під час компіляції), а деякі - ні.

Я хочу мати змогу застосувати таку інформацію:

  • Назва компанії
  • Повідомлення про авторські права
  • Назва продукту
  • Опис продукту
  • Версія файлу
  • Версія продукту

Усі ці атрибути задаються сценарієм збірки і повинні бути застосовані після компіляції. Це стандартні бінарні файли (а не збірки), складені за допомогою C ++ Builder 2007.

Як я можу це зробити?


для чого використовують ResourceHacker ? як саме поставлено завдання? в якій проблемі використовувати UpdateResourceфункцію, якщо оновлення версії завдання в існуючому pe
RbMm

Спробуйте це: alternativeto.net/software/xn-resource-editor , я думаю, що є зворотні інженерні інструменти для цього
i_thamary

Відповіді:


59

Хоча це не пакетний процес, Visual Studio також може додавати / редагувати файлові ресурси.

Просто використовуйте File-> Open-> File на .EXE або .DLL. Це зручно для виправлення інформації про версію після збирання або додавання її до файлів, у яких немає цих ресурсів.


8
Це спрацювало чудово, коли я спробував це. Для файлу, в якому повністю відсутня інформація про версію: Після відкриття DLL у Visual Studio перейдіть до меню Редагувати> Додати ресурс> Версія та натисніть кнопку Створити. Потім на новій вкладці Версія змініть FILEVERSION і PRODUCTVERSION, CompanyName тощо. Збережіть файли, і все готово!
twasbrillig

2
@UweBaemayr. відповідь, яку ви цитуєте, я хочу запитати так само, як ми можемо автоматизувати її, як саме я роблю те саме, що будується після публікації, і я хочу його автоматизувати. Але як ?
SteveScm

1
Для мого старого Dllhi win32 dll це не працює. Незважаючи на те, що інформація про dll коректно змінена, під час запуску перевірки правильності на ній ви розумієте, що вона пошкоджена.
sthiers

3
Спробував це (додайте інформацію про версію) в Windows 8, VS 2015, і все добре в Windows Explorer, за винятком ... виконуваного файлу більше не запускатиметься.
Лівіу

36

На відміну від багатьох інших відповідей, це рішення використовує абсолютно безкоштовне програмне забезпечення.

По-перше, створіть файл, який називається Resources.rcтак:

VS_VERSION_INFO VERSIONINFO
    FILEVERSION    1,0,0,0
    PRODUCTVERSION 1,0,0,0
{
    BLOCK "StringFileInfo"
    {
        BLOCK "040904b0"
        {
            VALUE "CompanyName",        "ACME Inc.\0"
            VALUE "FileDescription",    "MyProg\0"
            VALUE "FileVersion",        "1.0.0.0\0"
            VALUE "LegalCopyright",     "© 2013 ACME Inc. All Rights Reserved\0"
            VALUE "OriginalFilename",   "MyProg.exe\0"
            VALUE "ProductName",        "My Program\0"
            VALUE "ProductVersion",     "1.0.0.0\0"
        }
    }
    BLOCK "VarFileInfo"
    {
        VALUE "Translation", 0x409, 1200
    }
}

Далі використовуйте GoRC, щоб компілювати його у .resфайл, використовуючи:

GoRC /fo Resources.res Resources.rc

(див. мій коментар нижче для дзеркала GoRC.exe)

Потім використовуйте Resource Hacker в режимі CLI, щоб додати його до існуючого .exe:

ResHacker -add MyProg.exe, MyProg.exe, Resources.res,,,

Це воно!


1
@CharlesB Я помітив це сам, але це правильне посилання. Схоже, хтось забув платити своєму веб-хосту! Ось двійковий файл, я відобразив його в моєму загальнодоступному акаунті асамблеї: assembla.com/code/danny-beckett/subversion/nodes/13/GoRC.exe
Danny Beckett

3
Ви також можете використовувати компілятор ресурсів Microsoft замість GoRC. Він доступний у комплектації Windows SDK.
Holistic Developer

Великі пальці для Resource Hacker, я використав це на цій відповіді, і це геніальна, відмінна програма. (немає спорідненості з програмою чи розробником ;-)
user2109254

@UweKeim Я не використовував це деякий час, але я впевнений, що вони вимагають.
Danny Beckett

6
Здається, командний рядок трохи змінився: ResourceHacker.exe -open Source.dll -save Changed.dll -action addoverwrite -resource Version.resТакож ResourceHacker може сам скласти .rc файл:ResourceHacker.exe -open Version.rc -save Version.res -action compile
Yusuf Tarık Günaydın

23

Або ви можете перевірити безкоштовний StampVer для файлів Win32 exe / dll.
Він змінить лише версії файлів та продуктів, хоча вони вже мають ресурс версії. Він не може додати ресурс версії, якщо такий не існує.


19

rcedit відносно новий і добре працює з командного рядка: https://github.com/atom/rcedit

$ rcedit "path-to-exe-or-dll" --set-version-string "Comments" "This is an exe"
$ rcedit "path-to-exe-or-dll" --set-file-version "10.7"
$ rcedit "path-to-exe-or-dll" --set-product-version "10.7"

Існує також модуль NPM, який завершує його з JavaScript та завдання Grunt, якщо ви використовуєте Grunt.


5
зауважте, що rcedit може змінювати лише існуючі ресурси, а не вставляти нові
Беван Коллінз

2
Не працює з архівами 7zip sfx: / Просто вирізає частину архіву 7zip.
Мгамерц

1
спробував це, не дає можливості завантажувати файл у тому ж каталозі і, здається, інструмент може залежати від конфігурації хоста
Arijoon

Працює із заглушкою 7zS.sfx, першою частиною з VERSIONINFO всередині, яку ви використовуєте для складання архіву, що самовипаковується. Ви також можете перейменувати 7zS.sfx в 7zS.exe і відредагувати його у Visual Studio, але оскільки номер версії змінюється для кожної збірки, ви віддаєте перевагу пакетному файлу з операторами rcedit всередині нього.
AndresRohrAtlasInformatik

1
цей інструмент дуже неприємний, будь ласка, подивіться на цю помилку, перш ніж застосувати її до своїх двійкових файлів: github.com/electron/rcedit/isissue/51
Брун

14

А що з подібним?

verpatch /va foodll.dll %VERSION% %FILEDESCR% %COMPINFO% %PRODINFO% %BUILDINFO%

Тут доступні повні джерела .


Verpatch ніби створив для мене поганий ресурс версії продукту (використовуючи /va /pvпараметр). Версія з’явилася вірно в Провіднику Windows, але останній символ відсутній при отриманні в коді з VerQueryValue. Щоб виправити поганий ресурс, я зробив це: (1) Завантажте DLL в Resource Hacker. (2) Перегляд ресурсу версії. (3) Компілюйте (щось змініть, а потім змініть його назад, щоб увімкнути кнопку). (4) Зберегти.
dan-gph

verpatch чудово працює як для версій x64, так і для x86 моїх DLL-файлів у вікні свого розробника, однак у проекті побудови apveyor він працює лише для x64, і він не робить абсолютно нічого для dll x86 - також немає помилок! будь-які натяки, що може статися? Я можу побачити, що в журналі додатків виконується команда verpatch, помилок немає, і dll не змінюється якось, і в кінці він не має штампа версії; для x64 все працює добре у будь-яких ситуаціях. будь-які підказки, будь ласка?
Ов

@ Ovi-Wan Kenobi: Я не знав, що таке апвейер, але, згідно з вашим описом, це мені більше схоже на проблему передвісника. У гіршому випадку, якщо це можливо, підготуйтеся до налагодження в середовищі апвеєра? ...
filofel

10

Є цей інструмент ChangeVersion [1]

Перелік функцій (з веб-сайту):

  • Інтерфейс командного рядка
  • підтримка файлів .EXE, .DLL та .RES
  • оновити FileVersion та ProductVersion на основі маски версії
  • додати / змінити / видалити рядки ключових рядків версії
  • налаштування прапорів файлів (налагодження, спеціальні, приватні тощо)
  • оновити файли проекту (.bdsproj | .bpr | .bpk | .dproj)
  • додати / змінити основний значок програми
  • використовувати файл ini з конфігурацією
  • Підтримка Windows Vista (потребує підвищення)
  • легко інтегруватися в безперервне середовище побудови

Повне розкриття інформації: Я знаю хлопця, який написав цей інструмент, я працював з ним. Але це також означає, що я знаю, що він робить якісне програмне забезпечення;)


[1] посилання мертва. Здається, на сайті download.cnet.com є дзеркальна версія .


@Gareth Я додав дзеркальне посилання. З іншого боку, я сумніваюся, що ця відповідь має будь-яке значення без будь-яких робочих посилань.
Вовк

5
Друге посилання призводить до закінчення терміну дії"Change Version v2012.9.6.0 - (C)2007-2012 The-Software-Box.com This trial version has expired"
Preet Sangha

2
Запускаючи його в командному рядку, він говорить "Змінити версію v2012.9.6.0 - (C) 2007-2012 The-Software-Box.com Ця пробна версія закінчилася"
RDeveloper

10

Я роблю це без додаткового інструменту. Щойно я додав наступні файли до свого проекту додатків Win32.

Один файл заголовка, який визначає деякі константи, ніж ми можемо повторно використовувати у нашому ресурсному файлі та навіть на програмному коді. Нам потрібно лише підтримувати один файл. Завдяки команді Qt, яка показала мені, як це зробити на проекті Qt, тепер він працює і на моєму додатку Win32.

---- [версія.h] ----

#ifndef VERSION_H
#define VERSION_H

#define VER_FILEVERSION             0,3,0,0
#define VER_FILEVERSION_STR         "0.3.0.0\0"

#define VER_PRODUCTVERSION          0,3,0,0
#define VER_PRODUCTVERSION_STR      "0.3.0.0\0"

#define VER_COMPANYNAME_STR         "IPanera"
#define VER_FILEDESCRIPTION_STR     "Localiza archivos duplicados"
#define VER_INTERNALNAME_STR        "MyProject"
#define VER_LEGALCOPYRIGHT_STR      "Copyright 2016 ipanera@gmail.com"
#define VER_LEGALTRADEMARKS1_STR    "All Rights Reserved"
#define VER_LEGALTRADEMARKS2_STR    VER_LEGALTRADEMARKS1_STR
#define VER_ORIGINALFILENAME_STR    "MyProject.exe"
#define VER_PRODUCTNAME_STR         "My project"

#define VER_COMPANYDOMAIN_STR       "www.myurl.com"

#endif // VERSION_H

---- [MyProjectVersion.rc] ----

#include <windows.h>
#include "version.h"

VS_VERSION_INFO VERSIONINFO
FILEVERSION     VER_FILEVERSION
PRODUCTVERSION  VER_PRODUCTVERSION
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904E4"
        BEGIN
            VALUE "CompanyName",        VER_COMPANYNAME_STR
            VALUE "FileDescription",    VER_FILEDESCRIPTION_STR
            VALUE "FileVersion",        VER_FILEVERSION_STR
            VALUE "InternalName",       VER_INTERNALNAME_STR
            VALUE "LegalCopyright",     VER_LEGALCOPYRIGHT_STR
            VALUE "LegalTrademarks1",   VER_LEGALTRADEMARKS1_STR
            VALUE "LegalTrademarks2",   VER_LEGALTRADEMARKS2_STR
            VALUE "OriginalFilename",   VER_ORIGINALFILENAME_STR
            VALUE "ProductName",        VER_PRODUCTNAME_STR
            VALUE "ProductVersion",     VER_PRODUCTVERSION_STR
        END
    END

    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1252
    END
END

2
Просто цікаво; як ви зупиняли Windows перезаписувати файл .rc щоразу, коли ви змінювали діалогове вікно чи змінювали будь-який ресурс у проекті? Я вже бачив пару таких статей, і, схоже, це спрацювало, якщо вам більше не доведеться знову змінювати ресурс, що спричинить автоматичну генерацію IDE.
shawn1874

@ shawn1874 - Додайте рядок #include <windows.h>у resource.hфайл, який додається автоматично. Цей файл не регенерується (зверніть увагу, що вгорі.
CJBS

1
@CJBS не відповідає на запитання. Хоча це може спрацювати, воно не пояснює, як може працювати опублікована відповідь. У розміщеній відповіді користувач3016543 включає версію.h безпосередньо у файлі .rc. Існує кілька способів вирішити питання про перезапис файлу .rc, який я знаю, як зробити. Я питаю лише те, як показана ця конкретна відповідь, тому що вона не здається мені правильною.
shawn1874

Я здогадуюсь, що метод працює для нього, тому що у відповідного компонента немає компонентів діалогу, тому файл не регенерується часто і ніколи. Однак у програмі Windows з діалоговими ресурсами MFC це не так.
shawn1874

1
Дякуємо, що нагадали мені про техніку, яку я вперше побачив у файлі ресурсу, який постачався з SDB WinBatch Extender. Це було так давно, як мені це було потрібно, що я забув більшість деталей. Ваше пояснення все це повернуло.
Девід А. Грей


6

Є кілька інструментів, на які згадується багато чудових відповідей, я збираюся вибрати один.

Ресурсний хакер

Я завантажив останню версію ( 5.1.7 ) з [AngusJ]: Resource Hacker . Всю необхідну інформацію можна знайти на цій сторінці (параметри командного рядка, сценарії, ...). У наступному покроковому описі я збираюся оперувати двома виконавчими файлами (лабораторними щурами), які (з очевидних причин) я скопіював у свій cwd :

  • ResourceHacker.exe : Я думав, що буде цікаво працювати над собою
  • cmake.exe : випадковий виконуваний файл без встановленої інформації про версію (частина встановлення v3.6.3 на моїй машині)

Перш ніж піти далі, хочу зазначити, що ResourceHacker має смішний термінальний вихід , і наступні фрагменти копіювання / вставки можуть створити трохи плутанини.

1. Налаштування

Це більше схоже на попередній крок, ознайомитись із оточенням, показати, що не відбувається жодної прикольної справи, ...

e:\Work\Dev\StackOverflow\q000284258> sopr.bat
*** Set shorter prompt to better fit when pasted in StackOverflow (or other) pages ***

[prompt]> dir
 Volume in drive E is Work
 Volume Serial Number is 3655-6FED

 Directory of e:\Work\Dev\StackOverflow\q000284258

2019-01-28  20:09    <DIR>          .
2019-01-28  20:09    <DIR>          ..
2016-11-03  09:17         5,413,376 cmake.exe
2019-01-03  02:06         5,479,424 ResourceHacker.exe
2019-01-28  20:30               496 ResourceHacker.ini
               3 File(s)     10,893,296 bytes
               2 Dir(s)  103,723,261,952 bytes free

[prompt]> set PATH=%PATH%;c:\Install\x64\CMake\CMake\3.6.3\bin

[prompt]> .\cmake --help >nul 2>&1

[prompt]> echo %errorlevel%
0

[prompt]> .\ResourceHacker.exe -help

[prompt]>

==================================
Resource Hacker Command Line Help:
==================================

-help             : displays these abbreviated help instructions.
-help commandline : displays help for single commandline instructions
-help script      : displays help for script file instructions.




[prompt]> echo %errorlevel%
0

Як бачимо, виконувані файли в порядку, вони працюють нормально, і ось як виглядають їхні деталі (про які ми дбаємо):

Img0-початковий

2. Ресурси

Файли ресурсів - це текстові файли, що містять ресурси. Ресурс (спрощений) має:

  • Ім'я
  • Тип
  • Значення

Для отримання більш детальної інформації перегляньте [MS.Docs]: Про файли ресурсів . Існує багато інструментів (згаданих у існуючих відповідях), які полегшують редагування файлів ресурсів, наприклад:

  • При запуску нового проекту VStudio створює типовий
  • Такий файл можна створити вручну
  • Але, оскільки мова йде про ресурсний хакер , і:

    • Він здатний витягувати ресурси з наявного виконуваного файлу
    • У нього вбудовані ресурси (як показано на попередньому малюнку)

    Я буду використовувати його для цього кроку ( -action extract)

Далі, щоб ресурс був вбудований у .exe ( .dll , ...), він повинен бути скомпільований у двійкову форму, яка вписується у формат PE . Знову ж таки, існує безліч інструментів, які можуть цього досягти, але, як ви, напевно, здогадалися, я збираюся дотримуватися Resource Hacker ( -action compile).

[prompt]> :: Extract the resources into a file
[prompt]> .\ResourceHacker.exe -open .\ResourceHacker.exe -save .\sample.rc -action extract -mask VersionInfo,, -log con

[prompt]>

[28 Jan 2019, 20:58:03]

Current Directory:
e:\Work\Dev\StackOverflow\q000284258

Commandline:
.\ResourceHacker.exe  -open .\ResourceHacker.exe -save .\sample.rc -action extract -mask VersionInfo,, -log con

Open    : e:\Work\Dev\StackOverflow\q000284258\ResourceHacker.exe
Save    : e:\Work\Dev\StackOverflow\q000284258\sample.rc


Success!

[prompt]> :: Modify the resource file and set our own values
[prompt]>
[prompt]> :: Compile the resource file
[prompt]> .\ResourceHacker.exe -open .\sample.rc -save .\sample.res -action compile -log con

[prompt]>

[28 Jan 2019, 20:59:51]

Current Directory:
e:\Work\Dev\StackOverflow\q000284258

Commandline:
.\ResourceHacker.exe  -open .\sample.rc -save .\sample.res -action compile -log con

Open    : e:\Work\Dev\StackOverflow\q000284258\sample.rc
Save    : e:\Work\Dev\StackOverflow\q000284258\sample.res

Compiling: e:\Work\Dev\StackOverflow\q000284258\sample.rc
Success!

[prompt]> dir /b
cmake.exe
ResourceHacker.exe
ResourceHacker.ini
sample.rc
sample.res

У вашому випадку збереження та редагування файлу ресурсу не знадобляться, оскільки файл вже буде присутній, я просто зробив це для демонстраційних цілей. Нижче знаходиться файл ресурсу після модифікації (і таким чином перед його компілюванням).

sample.rc :

1 VERSIONINFO
FILEVERSION 3,1,4,1592
PRODUCTVERSION 2,7,1,8
FILEOS 0x4
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
    BLOCK "040904E4"
    {
        VALUE "CompanyName", "Cristi Fati\0"
        VALUE "FileDescription", "20190128 - SO q000284258 demo\0"
        VALUE "FileVersion", "3.1.4.1592\0"
        VALUE "ProductName", "Colonel Panic\0"
        VALUE "InternalName", "100\0"
        VALUE "LegalCopyright", "(c) Cristi Fati 1999-2999\0"
        VALUE "OriginalFilename", "ResHack\0"
        VALUE "ProductVersion", "2.7.1.8\0"
    }
}

BLOCK "VarFileInfo"
{
    VALUE "Translation", 0x0409 0x04E4  
}
}

3. Вставити

Це також буде виконано Resource Hacker ( -action addoverwrite). Оскільки файли .exe вже скопійовані, я збираюся редагувати їх ресурси на місці.

[prompt]> .\ResourceHacker.exe -open .\cmake.exe -save .\cmake.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con

[prompt]>

[28 Jan 2019, 21:17:19]

Current Directory:
e:\Work\Dev\StackOverflow\q000284258

Commandline:
.\ResourceHacker.exe  -open .\cmake.exe -save .\cmake.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con

Open    : e:\Work\Dev\StackOverflow\q000284258\cmake.exe
Save    : e:\Work\Dev\StackOverflow\q000284258\cmake.exe
Resource: e:\Work\Dev\StackOverflow\q000284258\sample.res

  Added: VERSIONINFO,1,1033

Success!

[prompt]> copy ResourceHacker.exe ResourceHackerTemp.exe
        1 file(s) copied.

[prompt]> .\ResourceHackerTemp.exe -open .\ResourceHacker.exe -save .\ResourceHacker.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con

[prompt]>

[28 Jan 2019, 21:19:29]

Current Directory:
e:\Work\Dev\StackOverflow\q000284258

Commandline:
.\ResourceHackerTemp.exe  -open .\ResourceHacker.exe -save .\ResourceHacker.exe -res .\sample.res -action addoverwrite -mask VersionInfo,, -log con

Open    : e:\Work\Dev\StackOverflow\q000284258\ResourceHacker.exe
Save    : e:\Work\Dev\StackOverflow\q000284258\ResourceHacker.exe
Resource: e:\Work\Dev\StackOverflow\q000284258\sample.res

  Modified: VERSIONINFO,1,1033

Success!

[prompt]> del /f /q ResourceHackerTemp.*

[prompt]> dir
 Volume in drive E is Work
 Volume Serial Number is 3655-6FED

 Directory of e:\Work\Dev\StackOverflow\q000284258

2019-01-28  21:20    <DIR>          .
2019-01-28  21:20    <DIR>          ..
2016-11-03  09:17         5,414,400 cmake.exe
2019-01-03  02:06         5,479,424 ResourceHacker.exe
2019-01-28  21:17               551 ResourceHacker.ini
2019-01-28  20:05             1,156 sample.rc
2019-01-28  20:59               792 sample.res
               5 File(s)     10,896,323 bytes
               2 Dir(s)  103,723,253,760 bytes free

Як видно, мені довелося трішки підманути ( gainarie ), оскільки я не можу (принаймні не думаю, що можу) змінити .exe під час використання.

4. Тест

Це необов'язковий етап, щоб переконатися, що:

  • Виконані файли все ще працюють (їх не заплутали в процесі)
  • Ресурси додані / оновлені
[prompt]> .\cmake --help >nul 2>&1

[prompt]> echo %errorlevel%
0

[prompt]> .\ResourceHacker.exe -help

[prompt]>

==================================
Resource Hacker Command Line Help:
==================================

-help             : displays these abbreviated help instructions.
-help commandline : displays help for single commandline instructions
-help script      : displays help for script file instructions.




[prompt]> echo %errorlevel%
0

І їх деталі :

Img1-Final


@ColonelPanic: Дякую!
CristiFati

Дуже приємна відповідь. На жаль, ResourceHacker більше не підтримується і не вистачає пам’яті при спробі редагування великого файлу EXE (у мене з’явилася помилка при спробі відкрити 3GB EXE).
Lews Therin

@LewsTherin: Остання версія (також використовується у відповіді) - з 2019/01, тому я б сказав, що вона досить підтримується. Проблема в тому, що це 32-бітний . Ви можете зв’язатися з авторами з проханням про 64-бітну версію (я припускаю, що оскільки у них вже є код, то скласти його для 64-бітного буде важко ).
CristiFati

3

Існує Resource Tuner Console від Heaventools Software.

Resource Tuner Console - це інструмент командного рядка, який дозволяє розробникам автоматизувати редагування різних типів ресурсів у великій кількості 32-і 64-бітних виконуваних файлів Windows.

Детальніше див. У розділі Зміна змінних версій та оновлення сторінки Інформація про версію .


3

Трохи запізнюємось на вечірку, але оскільки я шукав її (і, можливо, мені доведеться її знову знайти колись), ось що я зробив, щоб включити версію, назву компанії тощо у свою C ++ DLL під VS2013 Express:

  1. Створено та відредаговано файл dllproj.rc, як зазначено раніше.
  2. Додано рядок "rc.exe dllproj.rc" як крок перед складанням проекту DLL.
  3. Додано dllproj.res до папки ресурсів для проекту.

Сподіваюся, це допомагає!


3

вище відповідь від @DannyBeckett мені дуже допоміг,

Я поміщаю наступне у пакетний файл і розміщую його в тій же папці, де знаходиться ResourceHacker.exe та EXE, над яким я працюю, і він працює чудово. [ви можете відредагувати його відповідно до ваших потреб]

    @echo off
    :start1
    set /p newVersion=Enter version number [?.?.?.?]:
    if "%newVersion%" == "" goto start1
    :start2
    set /p file=Enter EXE name [for 'program.exe' enter 'program']:
    if "%file%" == "" goto start2
    for /f "tokens=1-4 delims=." %%a in ('echo %newVersion%') do (set ResVersion=%%a,%%b,%%c,%%d)
    (
    echo:VS_VERSION_INFO VERSIONINFO
    echo:    FILEVERSION    %ResVersion%
    echo:    PRODUCTVERSION %ResVersion%
    echo:{
    echo:    BLOCK "StringFileInfo"
    echo:    {
    echo:        BLOCK "040904b0"
    echo:        {
    echo:            VALUE "CompanyName",        "MyCompany\0"
    echo:            VALUE "FileDescription",    "TestFile\0"
    echo:            VALUE "FileVersion",        "%newVersion%\0"
    echo:            VALUE "LegalCopyright",     "COPYRIGHT © 2019 MyCompany\0"
    echo:            VALUE "OriginalFilename",   "%file%.exe\0"
    echo:            VALUE "ProductName",        "Test\0"
    echo:            VALUE "ProductVersion",     "%newVersion%\0"
    echo:        }
    echo:    }
    echo:    BLOCK "VarFileInfo"
    echo:    {
    echo:        VALUE "Translation", 0x409, 1200
    echo:    }
    echo:}
    ) >Resources.rc     &&      echo setting Resources.rc
    ResourceHacker.exe -open resources.rc -save resources.res -action compile -log CONSOLE
    ResourceHacker -open "%file%.exe" -save "%file%Res.exe" -action addoverwrite -resource "resources.res"  -log CONSOLE
    ResourceHacker.exe -open "%file%Res.exe" -save "%file%Ico.exe" -action addskip -res "%file%.ico" -mask ICONGROUP,MAINICON, -log CONSOLE
    xCopy /y /f "%file%Ico.exe" "%file%.exe"
    echo.
    echo.
    echo your compiled file %file%.exe is ready
    pause

[як бічну зауваження, я використовував хакер ресурсів також для складання файлу res, а не GoRC]


2

Ви можете спробувати завантажити FVIE із завантаження посилання та спробувати відредагувати інформацію для будь-якого файлу .exe.

(АБО)

Ви можете завантажити StampVer - Win32 Версія Resim Stamping з посилання завантаження, що справді корисно для файлів Windows .exe.

(АБО)

Ви можете використовувати командний інструмент під назвою RCEDIT . Завантажте посилання Github Source та складіть за допомогою Visual Studio 2015, і тоді у вас є конкретні команди для зміни версії файлів .exe. Дивіться посилання Документи для різних доступних команд.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.