Files
chuan 42ebee50b7 build: AOT 发布后自动 UPX nrv9 压缩(40MB→14MB)
- build.bat:publish 后清理产物 + upx -9 自动压缩,支持 SKIP_UPX 跳过、缺 upx 仅警告
- csproj:新增框架依赖单文件发布路径(非 AOT 时),.Static 包改为仅 AOT 引用
2026-06-24 01:00:32 +08:00

42 lines
1.5 KiB
Batchfile
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@echo off
setlocal
rem 切到仓库根目录(scripts 的上一级)
cd /d "%~dp0\.."
rem NativeAOT 的原生链接需要 MSVC 工具链,先用 vswhere 找到 VS 并配置环境
set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
if exist "%VSWHERE%" (
for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSPATH=%%i"
)
if defined VSPATH if exist "%VSPATH%\VC\Auxiliary\Build\vcvars64.bat" (
echo === Configure MSVC env: %VSPATH% ===
call "%VSPATH%\VC\Auxiliary\Build\vcvars64.bat" >nul
)
echo === NativeAOT publish (win-x64) -^> bin\notify.exe ===
dotnet publish Notify -c Release -r win-x64 -p:PublishAot=true -o bin
if errorlevel 1 (
echo.
echo *** publish failed. If link.exe not found, run from "Developer Command Prompt for VS" ***
exit /b 1
)
rem 清理发布目录残留:只留 notify.exeAOT 下 -o 拷贝时序使 csproj 内清理不可靠,这里统一处理)
del /q bin\*.pdb bin\*.dll bin\*.lib >nul 2>&1
rem 自动 UPX 压缩(NRV -9:大小/解压速度最佳平衡,约 40MB->14MB,启动仅多 ~100ms
rem 跳过压缩:先 set SKIP_UPX=1 再运行本脚本
if "%SKIP_UPX%"=="1" goto after_upx
where upx >nul 2>&1
if errorlevel 1 goto no_upx
echo === UPX compress (nrv9) ===
upx -9 bin\notify.exe
goto after_upx
:no_upx
echo *** WARNING: upx not found on PATH, skip compression (output is uncompressed exe) ***
:after_upx
echo.
echo === Done: %CD%\bin\notify.exe ===
endlocal