diff --git a/Installer/Installer.csproj b/Installer/Installer.csproj index 3406792..1879dee 100644 --- a/Installer/Installer.csproj +++ b/Installer/Installer.csproj @@ -17,6 +17,9 @@ $(SolutionDir)Output\Installer\ + + + true diff --git a/Installer/Pages/CompletePage.xaml b/Installer/Pages/CompletePage.xaml index 8ce5406..8a3e084 100644 --- a/Installer/Pages/CompletePage.xaml +++ b/Installer/Pages/CompletePage.xaml @@ -130,8 +130,6 @@ Fill="None" Stroke="{DynamicResource SuccessBrush}" StrokeThickness="3" - StrokeLineCap="Round" - StrokeLineJoin="Round" Stretch="Uniform" HorizontalAlignment="Center" VerticalAlignment="Center" diff --git a/Installer/Pages/InstallPage.xaml.cs b/Installer/Pages/InstallPage.xaml.cs index ed49545..a380f6d 100644 --- a/Installer/Pages/InstallPage.xaml.cs +++ b/Installer/Pages/InstallPage.xaml.cs @@ -293,16 +293,17 @@ namespace Better_Seewo.Installer.Pages TxtProgress.Text = $"{_currentProgress}%"; // 更新进度条宽度(使用动画) + var parentWidth = ((FrameworkElement)ProgressFill.Parent).ActualWidth; var widthAnimation = new DoubleAnimation { From = (ProgressFill.ActualWidth > 0 ? ProgressFill.ActualWidth : 0), - To = (_currentProgress / 100.0) * ProgressFill.Parent.ActualWidth, + To = (_currentProgress / 100.0) * parentWidth, Duration = TimeSpan.FromMilliseconds(300), EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut } }; // 如果父容器尚未布局完成,直接设置宽度 - if (ProgressFill.Parent.ActualWidth == 0) + if (parentWidth == 0) { // 等待布局完成后设置 ProgressFill.Loaded += (s, e) => @@ -310,7 +311,7 @@ namespace Better_Seewo.Installer.Pages var loadedAnimation = new DoubleAnimation { From = 0, - To = (_currentProgress / 100.0) * ProgressFill.Parent.ActualWidth, + To = (_currentProgress / 100.0) * ((FrameworkElement)ProgressFill.Parent).ActualWidth, Duration = TimeSpan.FromMilliseconds(300), EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut } }; diff --git a/Installer/Themes/InstallerTheme.xaml b/Installer/Themes/InstallerTheme.xaml index e12e5dd..df6949f 100644 --- a/Installer/Themes/InstallerTheme.xaml +++ b/Installer/Themes/InstallerTheme.xaml @@ -87,11 +87,11 @@ - 0:0:0.300 + 0:0:0.300 - 0:0:0.200 + 0:0:0.200 - 0:0:0.500 + 0:0:0.500 diff --git a/Manager/Pages/ActivatePage.xaml b/Manager/Pages/ActivatePage.xaml index a6f20d4..4bad71e 100644 --- a/Manager/Pages/ActivatePage.xaml +++ b/Manager/Pages/ActivatePage.xaml @@ -100,8 +100,6 @@ - @@ -252,8 +250,6 @@ diff --git a/Manager/Pages/ConvertPage.xaml b/Manager/Pages/ConvertPage.xaml index 4b9ca94..a307c1e 100644 --- a/Manager/Pages/ConvertPage.xaml +++ b/Manager/Pages/ConvertPage.xaml @@ -176,7 +176,6 @@ - diff --git a/Manager/Pages/InkPage.xaml b/Manager/Pages/InkPage.xaml index 4f17a0d..9082ad3 100644 --- a/Manager/Pages/InkPage.xaml +++ b/Manager/Pages/InkPage.xaml @@ -137,7 +137,6 @@ - diff --git a/Manager/Pages/InstallPage.xaml b/Manager/Pages/InstallPage.xaml index ace4e37..907b1a5 100644 --- a/Manager/Pages/InstallPage.xaml +++ b/Manager/Pages/InstallPage.xaml @@ -185,9 +185,10 @@ - + @@ -249,9 +250,10 @@ - + @@ -294,9 +296,10 @@ - + @@ -339,9 +342,10 @@ - + diff --git a/Manager/Pages/InstallPage.xaml.cs b/Manager/Pages/InstallPage.xaml.cs index 11f5e4b..be16660 100644 --- a/Manager/Pages/InstallPage.xaml.cs +++ b/Manager/Pages/InstallPage.xaml.cs @@ -5,6 +5,7 @@ using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Animation; +using System.Windows.Shapes; namespace Better_Seewo.Manager.Pages { @@ -78,7 +79,7 @@ namespace Better_Seewo.Manager.Pages EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut } }; transform.BeginAnimation(TranslateTransform.YProperty, slideIn); - transform.BeginAnimation(TranslateTransform.OpacityProperty, fadeIn); + card.BeginAnimation(Border.OpacityProperty, fadeIn); }; timer.Start(); } @@ -129,7 +130,7 @@ namespace Better_Seewo.Manager.Pages { if (!string.IsNullOrEmpty(_en5Path)) { - var pluginPath = Path.Combine(_en5Path, PluginDirName); + var pluginPath = System.IO.Path.Combine(_en5Path, PluginDirName); _pluginInstalled = Directory.Exists(pluginPath); } else @@ -145,7 +146,7 @@ namespace Better_Seewo.Manager.Pages { if (!string.IsNullOrEmpty(_en5Path)) { - var managerPath = Path.Combine(_en5Path, ManagerExeName); + var managerPath = System.IO.Path.Combine(_en5Path, ManagerExeName); _managerInstalled = File.Exists(managerPath); } else @@ -168,12 +169,12 @@ namespace Better_Seewo.Manager.Pages // 更新插件状态卡片 UpdateStatusIcon(PluginStatusIcon, _pluginInstalled); PluginStatusText.Text = _pluginInstalled ? "已安装" : "未安装"; - PluginPathText.Text = $"路径:{Path.Combine(_en5Path, PluginDirName)}"; + PluginPathText.Text = $"路径:{System.IO.Path.Combine(_en5Path, PluginDirName)}"; // 更新管理器状态卡片 UpdateStatusIcon(ManagerStatusIcon, _managerInstalled); ManagerStatusText.Text = _managerInstalled ? "已安装" : "未安装"; - ManagerPathText.Text = $"路径:{Path.Combine(_en5Path, ManagerExeName)}"; + ManagerPathText.Text = $"路径:{System.IO.Path.Combine(_en5Path, ManagerExeName)}"; // 更新安装路径卡片 UpdateStatusIcon(PathStatusIcon, _en5Installed); diff --git a/Manager/Pages/TouchPage.xaml b/Manager/Pages/TouchPage.xaml index 088032f..5b05ec0 100644 --- a/Manager/Pages/TouchPage.xaml +++ b/Manager/Pages/TouchPage.xaml @@ -223,9 +223,10 @@ - + @@ -258,9 +259,10 @@ - + @@ -304,9 +306,10 @@ - + @@ -337,9 +340,10 @@ - + @@ -370,9 +374,10 @@ - + @@ -416,9 +421,10 @@ - + diff --git a/Manager/Pages/TouchPage.xaml.cs b/Manager/Pages/TouchPage.xaml.cs index 7b26f0d..23ef68b 100644 --- a/Manager/Pages/TouchPage.xaml.cs +++ b/Manager/Pages/TouchPage.xaml.cs @@ -84,7 +84,7 @@ namespace Better_Seewo.Manager.Pages EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut } }; transform.BeginAnimation(TranslateTransform.YProperty, slideIn); - transform.BeginAnimation(TranslateTransform.OpacityProperty, fadeIn); + row.BeginAnimation(Border.OpacityProperty, fadeIn); }; timer.Start(); } diff --git a/Manager/Themes/DarkTheme.xaml b/Manager/Themes/DarkTheme.xaml index a58747d..51c6110 100644 --- a/Manager/Themes/DarkTheme.xaml +++ b/Manager/Themes/DarkTheme.xaml @@ -5,7 +5,8 @@ --> + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:System="clr-namespace:System;assembly=mscorlib"> #1A1A2E @@ -68,9 +69,9 @@ - 0:0:0.300 + 0:0:0.300 - 0:0:0.200 + 0:0:0.200 diff --git a/Manager/Themes/LightTheme.xaml b/Manager/Themes/LightTheme.xaml index 8f32d9e..f8a5a99 100644 --- a/Manager/Themes/LightTheme.xaml +++ b/Manager/Themes/LightTheme.xaml @@ -5,7 +5,8 @@ --> + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:System="clr-namespace:System;assembly=mscorlib"> #F5F5F7 @@ -68,9 +69,9 @@ - 0:0:0.300 + 0:0:0.300 - 0:0:0.200 + 0:0:0.200 diff --git a/NuGet.config b/NuGet.config index 82d7f23..2ed91dc 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,7 +7,7 @@ - - + + diff --git a/Output/Installer/net6.0-windows/Better-Seewo.Installer b/Output/Installer/net6.0-windows/Better-Seewo.Installer new file mode 100755 index 0000000..29bcf07 Binary files /dev/null and b/Output/Installer/net6.0-windows/Better-Seewo.Installer differ diff --git a/Output/Installer/net6.0-windows/Better-Seewo.Installer.deps.json b/Output/Installer/net6.0-windows/Better-Seewo.Installer.deps.json new file mode 100644 index 0000000..1177727 --- /dev/null +++ b/Output/Installer/net6.0-windows/Better-Seewo.Installer.deps.json @@ -0,0 +1,41 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v6.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v6.0": { + "Better-Seewo.Installer/2.0.0": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "Better-Seewo.Installer.dll": {} + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + } + } + }, + "libraries": { + "Better-Seewo.Installer/2.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Output/Installer/net6.0-windows/Better-Seewo.Installer.dll b/Output/Installer/net6.0-windows/Better-Seewo.Installer.dll new file mode 100644 index 0000000..5adff26 Binary files /dev/null and b/Output/Installer/net6.0-windows/Better-Seewo.Installer.dll differ diff --git a/Output/Installer/net6.0-windows/Better-Seewo.Installer.runtimeconfig.json b/Output/Installer/net6.0-windows/Better-Seewo.Installer.runtimeconfig.json new file mode 100644 index 0000000..54681bc --- /dev/null +++ b/Output/Installer/net6.0-windows/Better-Seewo.Installer.runtimeconfig.json @@ -0,0 +1,18 @@ +{ + "runtimeOptions": { + "tfm": "net6.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "6.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "6.0.0" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false + } + } +} \ No newline at end of file diff --git a/Output/Installer/net6.0-windows/Newtonsoft.Json.dll b/Output/Installer/net6.0-windows/Newtonsoft.Json.dll new file mode 100755 index 0000000..d035c38 Binary files /dev/null and b/Output/Installer/net6.0-windows/Newtonsoft.Json.dll differ diff --git a/Output/Manager/net6.0-windows/Better-Seewo.Manager b/Output/Manager/net6.0-windows/Better-Seewo.Manager new file mode 100755 index 0000000..3ec42c8 Binary files /dev/null and b/Output/Manager/net6.0-windows/Better-Seewo.Manager differ diff --git a/Output/Manager/net6.0-windows/Better-Seewo.Manager.deps.json b/Output/Manager/net6.0-windows/Better-Seewo.Manager.deps.json new file mode 100644 index 0000000..4e04fc4 --- /dev/null +++ b/Output/Manager/net6.0-windows/Better-Seewo.Manager.deps.json @@ -0,0 +1,68 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v6.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v6.0": { + "Better-Seewo.Manager/2.0.0": { + "dependencies": { + "DocumentFormat.OpenXml": "2.20.0", + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "Better-Seewo.Manager.dll": {} + } + }, + "DocumentFormat.OpenXml/2.20.0": { + "dependencies": { + "System.IO.Packaging": "4.7.0" + }, + "runtime": { + "lib/net6.0/DocumentFormat.OpenXml.dll": { + "assemblyVersion": "2.20.0.0", + "fileVersion": "2.20.0.0" + } + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + }, + "System.IO.Packaging/4.7.0": {} + } + }, + "libraries": { + "Better-Seewo.Manager/2.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "DocumentFormat.OpenXml/2.20.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+oFMsEppo/W6KpGTRXaJl2jTFYn9zeon4FaZuDoCijQ1/0JaPENaCef7d4Y3f8v116eKhVBwd4Ya+/NDglxkjw==", + "path": "documentformat.openxml/2.20.0", + "hashPath": "documentformat.openxml.2.20.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + }, + "System.IO.Packaging/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9VV4KAbgRQZ79iEoG40KIeZy38O30oWwewScAST879+oki8g/Wa2HXZQgrhDDxQM4GkP1PnRJll05NMiVPbYAw==", + "path": "system.io.packaging/4.7.0", + "hashPath": "system.io.packaging.4.7.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Output/Manager/net6.0-windows/Better-Seewo.Manager.dll b/Output/Manager/net6.0-windows/Better-Seewo.Manager.dll new file mode 100644 index 0000000..3d7efb2 Binary files /dev/null and b/Output/Manager/net6.0-windows/Better-Seewo.Manager.dll differ diff --git a/Output/Manager/net6.0-windows/Better-Seewo.Manager.runtimeconfig.json b/Output/Manager/net6.0-windows/Better-Seewo.Manager.runtimeconfig.json new file mode 100644 index 0000000..54681bc --- /dev/null +++ b/Output/Manager/net6.0-windows/Better-Seewo.Manager.runtimeconfig.json @@ -0,0 +1,18 @@ +{ + "runtimeOptions": { + "tfm": "net6.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "6.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "6.0.0" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false + } + } +} \ No newline at end of file diff --git a/Output/Manager/net6.0-windows/DocumentFormat.OpenXml.dll b/Output/Manager/net6.0-windows/DocumentFormat.OpenXml.dll new file mode 100755 index 0000000..ccdb81c Binary files /dev/null and b/Output/Manager/net6.0-windows/DocumentFormat.OpenXml.dll differ diff --git a/Output/Manager/net6.0-windows/Newtonsoft.Json.dll b/Output/Manager/net6.0-windows/Newtonsoft.Json.dll new file mode 100755 index 0000000..d035c38 Binary files /dev/null and b/Output/Manager/net6.0-windows/Newtonsoft.Json.dll differ diff --git a/Publish/Installer/Better-Seewo.Installer b/Publish/Installer/Better-Seewo.Installer new file mode 100755 index 0000000..29bcf07 Binary files /dev/null and b/Publish/Installer/Better-Seewo.Installer differ diff --git a/Publish/Installer/Better-Seewo.Installer.deps.json b/Publish/Installer/Better-Seewo.Installer.deps.json new file mode 100644 index 0000000..1177727 --- /dev/null +++ b/Publish/Installer/Better-Seewo.Installer.deps.json @@ -0,0 +1,41 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v6.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v6.0": { + "Better-Seewo.Installer/2.0.0": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "Better-Seewo.Installer.dll": {} + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + } + } + }, + "libraries": { + "Better-Seewo.Installer/2.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Publish/Installer/Better-Seewo.Installer.dll b/Publish/Installer/Better-Seewo.Installer.dll new file mode 100644 index 0000000..5adff26 Binary files /dev/null and b/Publish/Installer/Better-Seewo.Installer.dll differ diff --git a/Publish/Installer/Better-Seewo.Installer.runtimeconfig.json b/Publish/Installer/Better-Seewo.Installer.runtimeconfig.json new file mode 100644 index 0000000..54681bc --- /dev/null +++ b/Publish/Installer/Better-Seewo.Installer.runtimeconfig.json @@ -0,0 +1,18 @@ +{ + "runtimeOptions": { + "tfm": "net6.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "6.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "6.0.0" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false + } + } +} \ No newline at end of file diff --git a/Publish/Installer/Newtonsoft.Json.dll b/Publish/Installer/Newtonsoft.Json.dll new file mode 100755 index 0000000..d035c38 Binary files /dev/null and b/Publish/Installer/Newtonsoft.Json.dll differ diff --git a/Publish/Manager/Better-Seewo.Manager b/Publish/Manager/Better-Seewo.Manager new file mode 100755 index 0000000..3ec42c8 Binary files /dev/null and b/Publish/Manager/Better-Seewo.Manager differ diff --git a/Publish/Manager/Better-Seewo.Manager.deps.json b/Publish/Manager/Better-Seewo.Manager.deps.json new file mode 100644 index 0000000..4e04fc4 --- /dev/null +++ b/Publish/Manager/Better-Seewo.Manager.deps.json @@ -0,0 +1,68 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v6.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v6.0": { + "Better-Seewo.Manager/2.0.0": { + "dependencies": { + "DocumentFormat.OpenXml": "2.20.0", + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "Better-Seewo.Manager.dll": {} + } + }, + "DocumentFormat.OpenXml/2.20.0": { + "dependencies": { + "System.IO.Packaging": "4.7.0" + }, + "runtime": { + "lib/net6.0/DocumentFormat.OpenXml.dll": { + "assemblyVersion": "2.20.0.0", + "fileVersion": "2.20.0.0" + } + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + }, + "System.IO.Packaging/4.7.0": {} + } + }, + "libraries": { + "Better-Seewo.Manager/2.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "DocumentFormat.OpenXml/2.20.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+oFMsEppo/W6KpGTRXaJl2jTFYn9zeon4FaZuDoCijQ1/0JaPENaCef7d4Y3f8v116eKhVBwd4Ya+/NDglxkjw==", + "path": "documentformat.openxml/2.20.0", + "hashPath": "documentformat.openxml.2.20.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + }, + "System.IO.Packaging/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9VV4KAbgRQZ79iEoG40KIeZy38O30oWwewScAST879+oki8g/Wa2HXZQgrhDDxQM4GkP1PnRJll05NMiVPbYAw==", + "path": "system.io.packaging/4.7.0", + "hashPath": "system.io.packaging.4.7.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Publish/Manager/Better-Seewo.Manager.dll b/Publish/Manager/Better-Seewo.Manager.dll new file mode 100644 index 0000000..3d7efb2 Binary files /dev/null and b/Publish/Manager/Better-Seewo.Manager.dll differ diff --git a/Publish/Manager/Better-Seewo.Manager.runtimeconfig.json b/Publish/Manager/Better-Seewo.Manager.runtimeconfig.json new file mode 100644 index 0000000..54681bc --- /dev/null +++ b/Publish/Manager/Better-Seewo.Manager.runtimeconfig.json @@ -0,0 +1,18 @@ +{ + "runtimeOptions": { + "tfm": "net6.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "6.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "6.0.0" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false + } + } +} \ No newline at end of file diff --git a/Publish/Manager/DocumentFormat.OpenXml.dll b/Publish/Manager/DocumentFormat.OpenXml.dll new file mode 100755 index 0000000..ccdb81c Binary files /dev/null and b/Publish/Manager/DocumentFormat.OpenXml.dll differ diff --git a/Publish/Manager/Newtonsoft.Json.dll b/Publish/Manager/Newtonsoft.Json.dll new file mode 100755 index 0000000..d035c38 Binary files /dev/null and b/Publish/Manager/Newtonsoft.Json.dll differ diff --git a/Publish/VERSION.txt b/Publish/VERSION.txt new file mode 100644 index 0000000..e98fd91 --- /dev/null +++ b/Publish/VERSION.txt @@ -0,0 +1,18 @@ +Better-Seewo v2.0.1 +构建时间: 2026-06-28 +构建配置: Release +自包含模式: false + +组件列表: + - Better-Seewo.Manager.exe (管理器桌面应用) + - Better-Seewo.Installer.exe (安装向导) + +系统要求: + - Windows 10/11 + - .NET 6.0 Desktop Runtime + - 希沃白板 EN5 v5.2.4.9855 + +作者: 雾启工作室 + +一键构建: + 双击 build.bat 即可在 Windows 上重新构建整个项目。 diff --git a/Publish/build.bat b/Publish/build.bat new file mode 100644 index 0000000..6277665 --- /dev/null +++ b/Publish/build.bat @@ -0,0 +1,32 @@ +@echo off +chcp 65001 >nul +title Better-Seewo 一键构建 +echo. +echo ======================================== +echo Better-Seewo 一键构建脚本 v2.0.1 +echo 雾生万象,启以为光 +echo ======================================== +echo. + +:: 检测 PowerShell +where powershell >nul 2>nul +if %errorlevel% neq 0 ( + echo [错误] 未找到 PowerShell,请先安装 PowerShell。 + pause + exit /b 1 +) + +:: 运行构建脚本 +echo [INFO] 正在启动 PowerShell 构建脚本 ... +echo. +powershell -ExecutionPolicy Bypass -File "%~dp0build.ps1" %* + +if %errorlevel% neq 0 ( + echo. + echo [错误] 构建失败! + pause + exit /b 1 +) + +echo. +pause diff --git a/Publish/build.ps1 b/Publish/build.ps1 new file mode 100644 index 0000000..b0e6185 --- /dev/null +++ b/Publish/build.ps1 @@ -0,0 +1,196 @@ +#Requires -Version 5.1 +<# +.SYNOPSIS + Better-Seewo 一键构建脚本 +.DESCRIPTION + 自动还原 NuGet 包、编译 Manager 和 Installer 项目,并打包为发布版本。 + 支持 Debug / Release 配置,支持框架依赖和自包含两种发布模式。 +.PARAMETER Configuration + 构建配置:Debug 或 Release(默认 Release) +.PARAMETER SelfContained + 是否自包含 .NET Runtime(默认 $false,需要用户安装 .NET 6 Desktop Runtime) +.PARAMETER OutputPath + 输出目录(默认 ./Publish) +.EXAMPLE + .\build.ps1 + .\build.ps1 -Configuration Release -SelfContained $true +#> +param( + [ValidateSet("Debug", "Release")] + [string]$Configuration = "Release", + + [bool]$SelfContained = $false, + + [string]$OutputPath = "$PSScriptRoot\Publish" +) + +$ErrorActionPreference = "Stop" + +# ========== 颜色输出辅助函数 ========== +function Write-Info { param([string]$Message) Write-Host "[INFO] $Message" -ForegroundColor Cyan } +function Write-Success { param([string]$Message) Write-Host "[OK] $Message" -ForegroundColor Green } +function Write-Warning { param([string]$Message) Write-Host "[WARN] $Message" -ForegroundColor Yellow } +function Write-Error { param([string]$Message) Write-Host "[ERR] $Message" -ForegroundColor Red } + +# ========== 标题 ========== +Write-Host "" +Write-Host "========================================" -ForegroundColor Magenta +Write-Host " Better-Seewo 一键构建脚本 v2.0.1" -ForegroundColor Magenta +Write-Host " 雾生万象,启以为光" -ForegroundColor Magenta +Write-Host "========================================" -ForegroundColor Magenta +Write-Host "" + +# ========== 检测 .NET SDK ========== +Write-Info "检测 .NET SDK ..." +$dotnetVersion = dotnet --version 2>$null +if (-not $dotnetVersion) { + Write-Error ".NET SDK 未找到!请先安装 .NET 6.0 SDK:" + Write-Error " https://dotnet.microsoft.com/download/dotnet/6.0" + exit 1 +} +Write-Success ".NET SDK 版本: $dotnetVersion" + +# ========== 检测解决方案路径 ========== +$SolutionDir = $PSScriptRoot +$SolutionFile = Join-Path $SolutionDir "Better-Seewo.sln" +if (-not (Test-Path $SolutionFile)) { + Write-Error "未找到解决方案文件: $SolutionFile" + exit 1 +} +Write-Info "解决方案路径: $SolutionFile" + +# ========== 清理旧输出 ========== +Write-Info "清理旧构建输出 ..." +$OutputManager = Join-Path $OutputPath "Manager" +$OutputInstaller = Join-Path $OutputPath "Installer" +if (Test-Path $OutputPath) { + Remove-Item -Recurse -Force $OutputPath +} +New-Item -ItemType Directory -Path $OutputManager -Force | Out-Null +New-Item -ItemType Directory -Path $OutputInstaller -Force | Out-Null +Write-Success "输出目录已清理: $OutputPath" + +# ========== 还原 NuGet 包 ========== +Write-Info "还原 NuGet 包 ..." +$restoreArgs = @("restore", $SolutionFile) +# 如果 EasiPlugin 私有源不可用,跳过它 +$NugetConfig = Join-Path $SolutionDir "NuGet.config" +if (Test-Path $NugetConfig) { + [xml]$nugetXml = Get-Content $NugetConfig + $easiPluginSource = $nugetXml.configuration.packageSources.add | Where-Object { $_.key -eq "EasiPlugin" } + if ($easiPluginSource) { + Write-Warning "检测到 EasiPlugin 私有 NuGet 源,Better-EN5 项目可能无法编译" + } +} + +& dotnet @restoreArgs +if ($LASTEXITCODE -ne 0) { + Write-Warning "NuGet 还原部分失败(EasiPlugin SDK 可能无法访问),继续构建可用项目 ..." +} + +# ========== 构建 Manager ========== +Write-Info "构建 Manager 项目 [$Configuration] ..." +$managerArgs = @( + "publish", + (Join-Path $SolutionDir "Manager\Manager.csproj"), + "-c", $Configuration, + "--no-restore", + "-o", $OutputManager, + "-p:SolutionDir=$SolutionDir\" +) +if ($SelfContained) { + $managerArgs += "--self-contained" + $managerArgs += "true" + $managerArgs += "-r" + $managerArgs += "win-x64" +} + +& dotnet @managerArgs +if ($LASTEXITCODE -ne 0) { + Write-Error "Manager 项目构建失败!" + exit 1 +} +Write-Success "Manager 构建完成 -> $OutputManager" + +# ========== 构建 Installer ========== +Write-Info "构建 Installer 项目 [$Configuration] ..." +$installerArgs = @( + "publish", + (Join-Path $SolutionDir "Installer\Installer.csproj"), + "-c", $Configuration, + "--no-restore", + "-o", $OutputInstaller, + "-p:SolutionDir=$SolutionDir\" +) +if ($SelfContained) { + $installerArgs += "--self-contained" + $installerArgs += "true" + $installerArgs += "-r" + $installerArgs += "win-x64" +} + +& dotnet @installerArgs +if ($LASTEXITCODE -ne 0) { + Write-Error "Installer 项目构建失败!" + exit 1 +} +Write-Success "Installer 构建完成 -> $OutputInstaller" + +# ========== 复制构建脚本到输出目录 ========== +Write-Info "复制构建脚本 ..." +Copy-Item (Join-Path $SolutionDir "build.ps1") $OutputPath +Copy-Item (Join-Path $SolutionDir "build.bat") $OutputPath +Write-Success "构建脚本已复制" + +# ========== 生成版本信息 ========== +Write-Info "生成版本信息 ..." +$VersionInfo = @" +Better-Seewo v2.0.1 +构建时间: $(Get-Date -Format "yyyy-MM-dd HH:mm:ss") +构建配置: $Configuration +自包含模式: $SelfContained +.NET SDK: $dotnetVersion + +组件列表: + - Better-Seewo.Manager.exe (管理器桌面应用) + - Better-Seewo.Installer.exe (安装向导) + +系统要求: + - Windows 10/11 +$(if (-not $SelfContained) { " - .NET 6.0 Desktop Runtime`n" }) + - 希沃白板 EN5 v5.2.4.9855 + +作者: 雾启工作室 +"@ +$VersionInfo | Out-File -Encoding UTF8 (Join-Path $OutputPath "VERSION.txt") +Write-Success "版本信息已生成" + +# ========== 统计输出文件 ========== +Write-Info "统计构建产物 ..." +$managerExe = Get-ChildItem $OutputManager -Filter "Better-Seewo.Manager*.exe" -ErrorAction SilentlyContinue +$installerExe = Get-ChildItem $OutputInstaller -Filter "Better-Seewo.Installer*.exe" -ErrorAction SilentlyContinue + +if ($managerExe) { + Write-Success "Manager 可执行文件: $($managerExe.Name) ($([math]::Round($managerExe.Length/1MB, 2)) MB)" +} else { + Write-Warning "Manager .exe 未生成(可能为 DLL-only 输出)" +} +if ($installerExe) { + Write-Success "Installer 可执行文件: $($installerExe.Name) ($([math]::Round($installerExe.Length/1MB, 2)) MB)" +} else { + Write-Warning "Installer .exe 未生成(可能为 DLL-only 输出)" +} + +# ========== 完成 ========== +Write-Host "" +Write-Host "========================================" -ForegroundColor Green +Write-Host " 构建成功!" -ForegroundColor Green +Write-Host " 输出目录: $OutputPath" -ForegroundColor Green +Write-Host "========================================" -ForegroundColor Green +Write-Host "" + +# 可选:自动打开输出目录 +$openDir = Read-Host "是否打开输出目录? (Y/n)" +if ($openDir -eq "" -or $openDir -match "^[Yy]") { + Invoke-Item $OutputPath +} diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..6277665 --- /dev/null +++ b/build.bat @@ -0,0 +1,32 @@ +@echo off +chcp 65001 >nul +title Better-Seewo 一键构建 +echo. +echo ======================================== +echo Better-Seewo 一键构建脚本 v2.0.1 +echo 雾生万象,启以为光 +echo ======================================== +echo. + +:: 检测 PowerShell +where powershell >nul 2>nul +if %errorlevel% neq 0 ( + echo [错误] 未找到 PowerShell,请先安装 PowerShell。 + pause + exit /b 1 +) + +:: 运行构建脚本 +echo [INFO] 正在启动 PowerShell 构建脚本 ... +echo. +powershell -ExecutionPolicy Bypass -File "%~dp0build.ps1" %* + +if %errorlevel% neq 0 ( + echo. + echo [错误] 构建失败! + pause + exit /b 1 +) + +echo. +pause diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 0000000..b0e6185 --- /dev/null +++ b/build.ps1 @@ -0,0 +1,196 @@ +#Requires -Version 5.1 +<# +.SYNOPSIS + Better-Seewo 一键构建脚本 +.DESCRIPTION + 自动还原 NuGet 包、编译 Manager 和 Installer 项目,并打包为发布版本。 + 支持 Debug / Release 配置,支持框架依赖和自包含两种发布模式。 +.PARAMETER Configuration + 构建配置:Debug 或 Release(默认 Release) +.PARAMETER SelfContained + 是否自包含 .NET Runtime(默认 $false,需要用户安装 .NET 6 Desktop Runtime) +.PARAMETER OutputPath + 输出目录(默认 ./Publish) +.EXAMPLE + .\build.ps1 + .\build.ps1 -Configuration Release -SelfContained $true +#> +param( + [ValidateSet("Debug", "Release")] + [string]$Configuration = "Release", + + [bool]$SelfContained = $false, + + [string]$OutputPath = "$PSScriptRoot\Publish" +) + +$ErrorActionPreference = "Stop" + +# ========== 颜色输出辅助函数 ========== +function Write-Info { param([string]$Message) Write-Host "[INFO] $Message" -ForegroundColor Cyan } +function Write-Success { param([string]$Message) Write-Host "[OK] $Message" -ForegroundColor Green } +function Write-Warning { param([string]$Message) Write-Host "[WARN] $Message" -ForegroundColor Yellow } +function Write-Error { param([string]$Message) Write-Host "[ERR] $Message" -ForegroundColor Red } + +# ========== 标题 ========== +Write-Host "" +Write-Host "========================================" -ForegroundColor Magenta +Write-Host " Better-Seewo 一键构建脚本 v2.0.1" -ForegroundColor Magenta +Write-Host " 雾生万象,启以为光" -ForegroundColor Magenta +Write-Host "========================================" -ForegroundColor Magenta +Write-Host "" + +# ========== 检测 .NET SDK ========== +Write-Info "检测 .NET SDK ..." +$dotnetVersion = dotnet --version 2>$null +if (-not $dotnetVersion) { + Write-Error ".NET SDK 未找到!请先安装 .NET 6.0 SDK:" + Write-Error " https://dotnet.microsoft.com/download/dotnet/6.0" + exit 1 +} +Write-Success ".NET SDK 版本: $dotnetVersion" + +# ========== 检测解决方案路径 ========== +$SolutionDir = $PSScriptRoot +$SolutionFile = Join-Path $SolutionDir "Better-Seewo.sln" +if (-not (Test-Path $SolutionFile)) { + Write-Error "未找到解决方案文件: $SolutionFile" + exit 1 +} +Write-Info "解决方案路径: $SolutionFile" + +# ========== 清理旧输出 ========== +Write-Info "清理旧构建输出 ..." +$OutputManager = Join-Path $OutputPath "Manager" +$OutputInstaller = Join-Path $OutputPath "Installer" +if (Test-Path $OutputPath) { + Remove-Item -Recurse -Force $OutputPath +} +New-Item -ItemType Directory -Path $OutputManager -Force | Out-Null +New-Item -ItemType Directory -Path $OutputInstaller -Force | Out-Null +Write-Success "输出目录已清理: $OutputPath" + +# ========== 还原 NuGet 包 ========== +Write-Info "还原 NuGet 包 ..." +$restoreArgs = @("restore", $SolutionFile) +# 如果 EasiPlugin 私有源不可用,跳过它 +$NugetConfig = Join-Path $SolutionDir "NuGet.config" +if (Test-Path $NugetConfig) { + [xml]$nugetXml = Get-Content $NugetConfig + $easiPluginSource = $nugetXml.configuration.packageSources.add | Where-Object { $_.key -eq "EasiPlugin" } + if ($easiPluginSource) { + Write-Warning "检测到 EasiPlugin 私有 NuGet 源,Better-EN5 项目可能无法编译" + } +} + +& dotnet @restoreArgs +if ($LASTEXITCODE -ne 0) { + Write-Warning "NuGet 还原部分失败(EasiPlugin SDK 可能无法访问),继续构建可用项目 ..." +} + +# ========== 构建 Manager ========== +Write-Info "构建 Manager 项目 [$Configuration] ..." +$managerArgs = @( + "publish", + (Join-Path $SolutionDir "Manager\Manager.csproj"), + "-c", $Configuration, + "--no-restore", + "-o", $OutputManager, + "-p:SolutionDir=$SolutionDir\" +) +if ($SelfContained) { + $managerArgs += "--self-contained" + $managerArgs += "true" + $managerArgs += "-r" + $managerArgs += "win-x64" +} + +& dotnet @managerArgs +if ($LASTEXITCODE -ne 0) { + Write-Error "Manager 项目构建失败!" + exit 1 +} +Write-Success "Manager 构建完成 -> $OutputManager" + +# ========== 构建 Installer ========== +Write-Info "构建 Installer 项目 [$Configuration] ..." +$installerArgs = @( + "publish", + (Join-Path $SolutionDir "Installer\Installer.csproj"), + "-c", $Configuration, + "--no-restore", + "-o", $OutputInstaller, + "-p:SolutionDir=$SolutionDir\" +) +if ($SelfContained) { + $installerArgs += "--self-contained" + $installerArgs += "true" + $installerArgs += "-r" + $installerArgs += "win-x64" +} + +& dotnet @installerArgs +if ($LASTEXITCODE -ne 0) { + Write-Error "Installer 项目构建失败!" + exit 1 +} +Write-Success "Installer 构建完成 -> $OutputInstaller" + +# ========== 复制构建脚本到输出目录 ========== +Write-Info "复制构建脚本 ..." +Copy-Item (Join-Path $SolutionDir "build.ps1") $OutputPath +Copy-Item (Join-Path $SolutionDir "build.bat") $OutputPath +Write-Success "构建脚本已复制" + +# ========== 生成版本信息 ========== +Write-Info "生成版本信息 ..." +$VersionInfo = @" +Better-Seewo v2.0.1 +构建时间: $(Get-Date -Format "yyyy-MM-dd HH:mm:ss") +构建配置: $Configuration +自包含模式: $SelfContained +.NET SDK: $dotnetVersion + +组件列表: + - Better-Seewo.Manager.exe (管理器桌面应用) + - Better-Seewo.Installer.exe (安装向导) + +系统要求: + - Windows 10/11 +$(if (-not $SelfContained) { " - .NET 6.0 Desktop Runtime`n" }) + - 希沃白板 EN5 v5.2.4.9855 + +作者: 雾启工作室 +"@ +$VersionInfo | Out-File -Encoding UTF8 (Join-Path $OutputPath "VERSION.txt") +Write-Success "版本信息已生成" + +# ========== 统计输出文件 ========== +Write-Info "统计构建产物 ..." +$managerExe = Get-ChildItem $OutputManager -Filter "Better-Seewo.Manager*.exe" -ErrorAction SilentlyContinue +$installerExe = Get-ChildItem $OutputInstaller -Filter "Better-Seewo.Installer*.exe" -ErrorAction SilentlyContinue + +if ($managerExe) { + Write-Success "Manager 可执行文件: $($managerExe.Name) ($([math]::Round($managerExe.Length/1MB, 2)) MB)" +} else { + Write-Warning "Manager .exe 未生成(可能为 DLL-only 输出)" +} +if ($installerExe) { + Write-Success "Installer 可执行文件: $($installerExe.Name) ($([math]::Round($installerExe.Length/1MB, 2)) MB)" +} else { + Write-Warning "Installer .exe 未生成(可能为 DLL-only 输出)" +} + +# ========== 完成 ========== +Write-Host "" +Write-Host "========================================" -ForegroundColor Green +Write-Host " 构建成功!" -ForegroundColor Green +Write-Host " 输出目录: $OutputPath" -ForegroundColor Green +Write-Host "========================================" -ForegroundColor Green +Write-Host "" + +# 可选:自动打开输出目录 +$openDir = Read-Host "是否打开输出目录? (Y/n)" +if ($openDir -eq "" -or $openDir -match "^[Yy]") { + Invoke-Item $OutputPath +}