From cfcc1b578b29ad1768a98e6a9284f8a54d570f5c Mon Sep 17 00:00:00 2001 From: Developer Date: Thu, 20 Nov 2025 14:28:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=8E=AF=E5=A2=83=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E5=92=8C=E5=8D=95exe=E6=89=93=E5=8C=85=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 添加.NET Framework 4.8环境检测 - 启动时检查注册表确认运行环境 - 缺失时显示明确错误信息和下载链接 2. 配置单exe打包方案 - 使用ILRepack合并依赖项 - 更改输出文件名为ExcelMerger_merged.exe - 添加必要的项目配置 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- WinFormsApp1/Program.cs | 41 ++++++++++++++++++++++++++++++++ WinFormsApp1/WinFormsApp1.csproj | 24 +++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/WinFormsApp1/Program.cs b/WinFormsApp1/Program.cs index e0472af..d7d2fb3 100644 --- a/WinFormsApp1/Program.cs +++ b/WinFormsApp1/Program.cs @@ -1,5 +1,6 @@ using System; using System.Windows.Forms; +using Microsoft.Win32; namespace WinFormsApp1 { @@ -11,9 +12,49 @@ namespace WinFormsApp1 [STAThread] static void Main() { + // 检查.NET Framework 4.8是否已安装 + if (!CheckDotNetFramework48()) + { + MessageBox.Show( + "检测到您的系统未安装 .NET Framework 4.8\n\n" + + "Excel合并工具需要此环境才能运行。\n\n" + + "请前往以下链接下载并安装:\n" + + "https://dotnet.microsoft.com/download/dotnet-framework/net48\n\n" + + "安装完成后请重新运行本程序。", + "缺少运行环境", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + return; + } + Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } + + private static bool CheckDotNetFramework48() + { + try + { + using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\")) + { + if (key != null) + { + object release = key.GetValue("Release"); + if (release != null && int.TryParse(release.ToString(), out int releaseValue)) + { + // .NET Framework 4.8 的 Release 值为 528040 或更高 + return releaseValue >= 528040; + } + } + } + } + catch + { + // 如果无法访问注册表,假设未安装 + } + return false; + } } } \ No newline at end of file diff --git a/WinFormsApp1/WinFormsApp1.csproj b/WinFormsApp1/WinFormsApp1.csproj index 6a6fff5..d70ee34 100644 --- a/WinFormsApp1/WinFormsApp1.csproj +++ b/WinFormsApp1/WinFormsApp1.csproj @@ -4,10 +4,34 @@ WinExe net48 true + ExcelMerger + ExcelMerger + app.ico + + + false + false + true + + true + + + + + + + + + + + + + + \ No newline at end of file