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