4.6 KiB
wUpdateVersionPS
Ñêðèïò PowerShell äëÿ àâòîìàòè÷åñêîãî îáíîâëåíèÿ íîìåðà âåðñèè ïðîãðàììû.
Ôàéë ðåñóðñîâ äîëæåí áûòü â ANSI èëè UTF-8 êîäèðîâêå.
Íàçíà÷åíèå ñêðèïòà
wUpdateVersionPS ñëóæèò äëÿ àâòîìàòè÷åñêîãî îáíîâëåíèÿ âåðñèè ïðîãðàììû ïåðåä ýòàïîì êîìïèëÿöèè â ñðåäå ðàçðàáîòêè Microsoft Visual Studio. Ñêðèïò èçâëåêàåò çíà÷åíèå âåðñèè èç ôàéëà, ñîäåðæàùåãî ìàêðîñ èëè îïðåäåëåíèå APP_VERSION, è çàïèñûâàåò ýòó âåðñèþ â áëîê VERSIONINFO ôàéëà ðåñóðñîâ.
×òî äåëàåò ñêðèïò?
-
Èçâëåêàåò âåðñèþ ïðîãðàììû èç çàäàííîãî ôàéëà (íàïðèìåð
version.h), ñîäåðæàùåãî ñòðîêó âèäà#define APP_VERSION "X.Y.Z.W". -
Îáíîâëÿåò â óêàçàííîì ôàéëå ðåñóðñîâ (íàïðèìåð
resources.rc) áëîêVERSIONINFO, ñîäåðæàùèé ñòðîêèFileVersionèProductVersion, ñîîòâåòñòâåííî.
Êàê çàïóñòèòü ñêðèïò?
Çàïóñêàéòå ñêðèïò êîìàíäîé â êîíñîëè PowerShell:
powershell.exe -ExecutionPolicy Bypass -File path\to\wUpdateVersionPS.ps1 arg1 arg2
Ïàðàìåòðû:
path\to\wUpdateVersionPS.ps1: Ïîëíûé ïóòü ê PowerShell-ñêðèïòó.
arg1: Ïóòü ê ôàéëó, ñîäåðæàùåìó îïðåäåëåíèå âåðñèè (version.h).
arg2: Ïóòü ê ôàéëó ðåñóðñîâ (resources.rc).
Íàïðèìåð:
powershell.exe -ExecutionPolicy Bypass -File C:\Scripts\wUpdateVersionPS.ps1 C:\Project\version.h C:\Project\resources.rc
Àâòîìàòèçàöèÿ çàïóñêà ñêðèïòà ïåðåä ñáîðêîé ïðîåêòà
Âû ìîæåòå äîáàâèòü âûçîâ ñêðèïòà â êà÷åñòâå ïðåäêîìïèëÿöèîííîãî øàãà â ïðîåêòå Microsoft Visual Studio, âûïîëíèâ ñëåäóþùèå øàãè:
-
Ù¸ëêíèòå ïðàâîé êíîïêîé ìûøè ïî ïðîåêòó â Solution Explorer è âûáåðèòå ïóíêò Properties.
-
Ïåðåéäèòå íà âêëàäêó Build Events, ðàçäåë Pre-Build Event, Command Line.
-
Äîáàâüòå òóäà ñëåäóþùèé êîä:
powershell.exe -ExecutionPolicy Bypass -File "$(SolutionDir)wUpdateVersionPS.ps1" "$(ProjectDir)version.h" "$(ProjectDir)resources.rc"
 äàííîì ïðèìåðå ñêðèïò
wUpdateVersionPS.ps1íàõîäèòñÿ â ïàïêå ðåøåíèÿ, à ôàéëûversion.hèresources.rc- â ïàïêå ïðîåêòà.
- Îáíîâèòå îïðåäåëåíèå ìàêðîñà
APP_VERSIONâ ôàéëåversion.h(ÍàïðèìåðAPP_VERSION "1.0"->APP_VERSION "1.1").
Òàêèì îáðàçîì, êàæäûé ðàç ïåðåä êîìïèëÿöèåé ïðîåêòà âåðñèÿ ïðîãðàììû áóäåò àâòîìàòè÷åñêè îáíîâëÿòüñÿ.
(c) 2026 Vladislav Salikov aka W0LF aka 'dreamforce'
Ýòîò òåêñò ñîçäàí ñ ïîìîùüþ Giga.Chat.
wUpdateVersionPS
A PowerShell script for automatically updating the program version number.
The resource file must be in ANSI or UTF-8 encoding.
Script Purpose
wUpdateVersionPS is used to automatically update the program version before compilation in the Microsoft Visual Studio IDE. The script extracts the version value from a file containing the APP_VERSION macro or definition and writes this version to the VERSIONINFO block of the resource file.
What does the script do?
-
Extracts the program version from the specified file (e.g.
version.h) containing the string#define APP_VERSION "X.Y.Z.W". -
Updates the
VERSIONINFOblock in the specified resource file (e.g.resources.rc) containing the stringsFileVersionandProductVersion, respectively.
How do I run the script?
Run the script with the following command in the PowerShell console:
powershell.exe -ExecutionPolicy Bypass -File path\to\wUpdateVersionPS.ps1 arg1 arg2
Parameters:
path\to\wUpdateVersionPS.ps1: Full path to the PowerShell script.
arg1: Path to the file containing the version definition (version.h).
arg2: Path to the resource file (resources.rc).
For example:
powershell.exe -ExecutionPolicy Bypass -File C:\Scripts\wUpdateVersionPS.ps1 C:\Project\version.h C:\Project\resources.rc
Automating the execution of a script before building a project
You can add a script call as a pre-compile step in a Microsoft Visual Studio IDE by following these steps:
-
Right-click the project in Solution Explorer and select Properties.
-
Go to the Build Events tab, Pre-Build Event section, Command Line.
-
Add the following code there:
powershell.exe -ExecutionPolicy Bypass -File "$(SolutionDir)wUpdateVersionPS.ps1" "$(ProjectDir)version.h" "$(ProjectDir)resources.rc"
In this example, the
wUpdateVersionPS.ps1script is located in the solution folder, and theversion.handresources.rcfiles are in the project folder.
- Update the definition of the
APP_VERSIONmacro in theversion.hfile (e.g.APP_VERSION "1.0"->APP_VERSION "1.1").
This way, the program version will be automatically updated every time the project is compiled.
(c) 2026 Vladislav Salikov aka W0LF aka 'dreamforce'
This text was created using Giga.Chat.