桌面端打包优化

This commit is contained in:
geht
2026-05-18 17:31:18 +08:00
parent c11f3104cb
commit 2ed796c1a1
8 changed files with 639 additions and 9 deletions

View File

@@ -3,6 +3,7 @@ using FluentValidation;
using Mapster;
using Microsoft.Extensions.Configuration;
using NewLife;
using System.Configuration;
using System.IO;
using System.Text;
using System.Windows;
@@ -73,6 +74,46 @@ namespace YY.Admin
}
}
/// <summary>
/// 写入用户级 AppSettingsuser.config。若文件损坏如缺少 configSections删除后重试一次。
/// </summary>
private static void PersistSkinTypeUserSettingSafe()
{
for (var attempt = 0; attempt < 2; attempt++)
{
try
{
AppSettings.Default.SkinType = AppSettingsViewModel.GetSkinType().ToInt();
AppSettings.Default.Save();
return;
}
catch (ConfigurationErrorsException ex)
{
if (attempt == 0)
{
var path = ex.Filename;
if (string.IsNullOrWhiteSpace(path) && ex.InnerException is ConfigurationErrorsException inner)
path = inner.Filename;
try
{
if (!string.IsNullOrWhiteSpace(path) && File.Exists(path))
File.Delete(path);
AppSettings.Default.Reload();
}
catch
{
// 删除/Reload 失败则向上抛出原异常
}
continue;
}
throw;
}
}
}
protected override Window CreateShell()
{
return Container.Resolve<LoginWindow>();
@@ -178,9 +219,8 @@ namespace YY.Admin
_logger = Container.Resolve<ILoggerService>();
// 初始化全局异常处理(通过解析触发构造函数注册)
Container.Resolve<GlobalExceptionHandler>();
// 保存默认主题
AppSettings.Default.SkinType = AppSettingsViewModel.GetSkinType().ToInt();
AppSettings.Default.Save();
// 保存默认主题(用户级 user.config损坏时自动删文件并重载
PersistSkinTypeUserSettingSafe();
_logger.Information("应用程序已启动");

View File

@@ -68,6 +68,16 @@ if errorlevel 1 (
exit /b 1
)
REM <20>˵<EFBFBD><CBB5><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SQLite<74><65><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>³<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>һ<EFBFBD>ݣ<EFBFBD>dotnet publish Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if exist "Admin.NET.db" (
copy /Y "Admin.NET.db" "publish\" >nul
echo <20>Ѹ<EFBFBD><D1B8><EFBFBD> Admin.NET.db<64><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>һ<EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>
)
if exist "Slave.db" (
copy /Y "Slave.db" "publish\" >nul
echo <20>Ѹ<EFBFBD><D1B8><EFBFBD> Slave.db
)
REM <20><><EFBFBD><EFBFBD> Updates Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD>ư汾<C6B0>ļ<EFBFBD>
echo [3/4] <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>...
if not exist "publish\Updates" mkdir "publish\Updates"