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
+}