diff --git a/Notify/Notify.csproj b/Notify/Notify.csproj
index 9570b4c..054b717 100644
--- a/Notify/Notify.csproj
+++ b/Notify/Notify.csproj
@@ -16,7 +16,16 @@
true
-
+
+
+ true
+ false
+ true
+ false
+
+
+
win-x64
true
@@ -50,8 +59,9 @@
CoreUtils.SkiaSharp.Static 含 skia + libHarfBuzzSharp 的 .lib,CoreUtils.ANGLE.Static 含 ANGLE
两包各自的 .targets 会在 PublishAot 时自动追加 NativeLibrary,这里只补 DirectPInvoke 与系统 lib
版本对应:Avalonia 12 → SkiaSharp 3.119
+ 仅 AOT 需要;框架依赖单文件用 Avalonia 自带的动态 Skia 原生库
-->
-
+
@@ -79,4 +89,12 @@
+
+
+
+ <_SingleFileJunk Include="$(PublishDir)*.pdb" />
+
+
+
+
diff --git a/scripts/build.bat b/scripts/build.bat
index 6040b19..fa029ea 100644
--- a/scripts/build.bat
+++ b/scripts/build.bat
@@ -9,7 +9,7 @@ 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 === 配置 MSVC 环境: %VSPATH% ===
+ echo === Configure MSVC env: %VSPATH% ===
call "%VSPATH%\VC\Auxiliary\Build\vcvars64.bat" >nul
)
@@ -17,10 +17,25 @@ 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 *** 发布失败。若提示找不到 link.exe,请从 "Developer Command Prompt for VS" 运行本脚本 ***
+ echo *** publish failed. If link.exe not found, run from "Developer Command Prompt for VS" ***
exit /b 1
)
+rem 清理发布目录残留:只留 notify.exe(AOT 下 -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 === 完成: %CD%\bin\notify.exe ===
+echo === Done: %CD%\bin\notify.exe ===
endlocal