Як встановити інформацію про версію для існуючого .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.