diff --git a/release.bat b/release.bat index d9d771c..db86004 100644 --- a/release.bat +++ b/release.bat @@ -7,19 +7,16 @@ echo PackagingMallShipper - Release Tool echo ======================================== echo. -:: 切换到脚本所在目录 cd /d "%~dp0" -:: 检查 Inno Setup set "ISCC=" -if exist "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" ( - set "ISCC=C:\Program Files (x86)\Inno Setup 6\ISCC.exe" -) -if exist "C:\Program Files\Inno Setup 6\ISCC.exe" ( - set "ISCC=C:\Program Files\Inno Setup 6\ISCC.exe" -) +set "ISCC_PATH1=C:\Program Files (x86)\Inno Setup 6\ISCC.exe" +set "ISCC_PATH2=C:\Program Files\Inno Setup 6\ISCC.exe" -if "%ISCC%"=="" ( +if exist "!ISCC_PATH1!" set "ISCC=!ISCC_PATH1!" +if exist "!ISCC_PATH2!" set "ISCC=!ISCC_PATH2!" + +if "!ISCC!"=="" ( echo [Error] Inno Setup 6 not found echo. echo Please download and install Inno Setup 6: @@ -29,29 +26,27 @@ if "%ISCC%"=="" ( exit /b 1 ) -:: 读取当前版本号 set "CURRENT_VERSION=" -for /f "tokens=2 delims=<>" %%a in ('type "PackagingMallShipper\PackagingMallShipper.csproj" ^| findstr ""') do ( +for /f "tokens=3 delims=<>" %%a in ('type "PackagingMallShipper\PackagingMallShipper.csproj" ^| findstr ""') do ( set "CURRENT_VERSION=%%a" ) -if "%CURRENT_VERSION%"=="" ( +if "!CURRENT_VERSION!"=="" ( echo [Error] Could not read version from csproj file echo. pause exit /b 1 ) -echo [Info] Current version: %CURRENT_VERSION% +echo [Info] Current version: !CURRENT_VERSION! echo. -:: 询问是否更新版本 if "%1"=="" ( echo Options: - echo 1. Keep current version [%CURRENT_VERSION%] - echo 2. Increment patch version (x.x.X) - echo 3. Increment minor version (x.X.0) - echo 4. Increment major version (X.0.0) + echo 1. Keep current version [!CURRENT_VERSION!] + echo 2. Increment patch version + echo 3. Increment minor version + echo 4. Increment major version echo 5. Enter custom version echo. set /p "CHOICE=Select option [1-5]: " @@ -60,51 +55,49 @@ if "%1"=="" ( goto :set_version ) -if "%CHOICE%"=="1" ( - set "NEW_VERSION=%CURRENT_VERSION%" +if "!CHOICE!"=="1" ( + set "NEW_VERSION=!CURRENT_VERSION!" goto :build ) -if "%CHOICE%"=="2" ( - call :increment_patch %CURRENT_VERSION% +if "!CHOICE!"=="2" ( + call :increment_patch !CURRENT_VERSION! goto :set_version ) -if "%CHOICE%"=="3" ( - call :increment_minor %CURRENT_VERSION% +if "!CHOICE!"=="3" ( + call :increment_minor !CURRENT_VERSION! goto :set_version ) -if "%CHOICE%"=="4" ( - call :increment_major %CURRENT_VERSION% +if "!CHOICE!"=="4" ( + call :increment_major !CURRENT_VERSION! goto :set_version ) -if "%CHOICE%"=="5" ( - set /p "NEW_VERSION=Enter new version (e.g. 1.2.3): " +if "!CHOICE!"=="5" ( + set /p "NEW_VERSION=Enter new version: " goto :set_version ) -set "NEW_VERSION=%CURRENT_VERSION%" +set "NEW_VERSION=!CURRENT_VERSION!" goto :build :set_version echo. -echo [Step 1] Updating version to %NEW_VERSION%... +echo [Step 1] Updating version to !NEW_VERSION!... -:: 更新 csproj 文件中的版本号 -powershell -Command "(Get-Content 'PackagingMallShipper\PackagingMallShipper.csproj') -replace '[0-9]+\.[0-9]+\.[0-9]+', '%NEW_VERSION%' -replace '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+', '%NEW_VERSION%.0' -replace '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+', '%NEW_VERSION%.0' | Set-Content 'PackagingMallShipper\PackagingMallShipper.csproj' -Encoding UTF8" +powershell -Command "(Get-Content 'PackagingMallShipper\PackagingMallShipper.csproj') -replace '[0-9]+\.[0-9]+\.[0-9]+', '!NEW_VERSION!' -replace '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+', '!NEW_VERSION!.0' -replace '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+', '!NEW_VERSION!.0' | Set-Content 'PackagingMallShipper\PackagingMallShipper.csproj' -Encoding UTF8" -:: 更新 setup.iss 文件中的版本号 -powershell -Command "(Get-Content 'setup.iss') -replace '#define MyAppVersion \"[0-9]+\.[0-9]+\.[0-9]+\"', '#define MyAppVersion \"%NEW_VERSION%\"' | Set-Content 'setup.iss' -Encoding UTF8" +powershell -Command "(Get-Content 'setup.iss') -replace '#define MyAppVersion \"[0-9]+\.[0-9]+\.[0-9]+\"', '#define MyAppVersion \"!NEW_VERSION!\"' | Set-Content 'setup.iss' -Encoding UTF8" -echo [Info] Version updated to %NEW_VERSION% +echo [Info] Version updated to !NEW_VERSION! echo. :build echo [Step 2] Building Release version... dotnet build -c Release -if %ERRORLEVEL% NEQ 0 ( +if !ERRORLEVEL! NEQ 0 ( echo [Error] Build failed! pause exit /b 1 @@ -133,30 +126,26 @@ echo. echo [Step 4] Compiling installer... echo. -"%ISCC%" setup.iss +"!ISCC!" setup.iss -if %ERRORLEVEL% EQU 0 ( +if !ERRORLEVEL! EQU 0 ( echo. echo ======================================== echo [Success] Release completed! echo. - echo Version: %NEW_VERSION% - echo Installer: installer\PackagingMallShipper_Setup_v%NEW_VERSION%.exe + echo Version: !NEW_VERSION! + echo Installer: installer\PackagingMallShipper_Setup_v!NEW_VERSION!.exe echo ======================================== echo. if exist "installer" explorer "installer" ) else ( echo. - echo [Error] Installer compilation failed, error code: %ERRORLEVEL% + echo [Error] Installer compilation failed ) pause exit /b 0 -:: ========================================== -:: Version increment functions -:: ========================================== - :increment_patch for /f "tokens=1,2,3 delims=." %%a in ("%1") do ( set /a "PATCH=%%c+1"