gpt4 book ai didi

c# - 以编程方式检查 .NET Framework 版本 - 我应该这样做吗?

转载 作者:太空狗 更新时间:2023-10-29 21:54:07 25 4
gpt4 key购买 nike

我的任务是扩展现有的 WinForm 应用程序以检查是否安装了所需的 .NET Framework (fx.3.5)。

那么问题是 - 如果没有安装 .NET Framework,则 winform 程序根本无法运行......我想。

我可以(也许)按照这里的建议去做:(并制作一个应该首先启动的 C++ 程序,进行检查,然后启动应用程序) Check on .Net framework version from WinForms app但我宁愿不进入 C++。

另一种方法似乎是这个解决方案: Why isn't an exception thrown when the right .NET framework version is not present?... 在 app.config 中配置应用程序的位置。但我怀疑如果我没有安装 .NET 框架,这是否可行。

<startup>
<supportedRuntime version="v3.5" />
</startup>

所以我的问题是什么是这个领域的最佳实践?我应该以一种方式或另一种方式进行检查,还是应该将其作为先决条件,即 fx.需要 .NET Framework 3.5 版?

最佳答案

如果未安装所需的框架,您的应用程序将无法运行,因此检查是否从您的应用程序中安装了该框架就是检查您已经知道是真的东西。

如果你想检查框架是否已安装,你真的需要在一个 Bootstrap exe 中执行此操作,该 exe 是用你知道将存在的 .NET 版本编写的(比如 .NET 2,因为它安装在机器上操作系统)或其他一些语言,如 C++。

您可以检查注册表 (HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP) 以查看安装了哪些框架。这可以用 C# 或任何其他语言轻松完成。

C# 代码如下:

var baseKeyName = @"SOFTWARE\Microsoft\NET Framework Setup\NDP";
var installedFrameworkVersions = Registry.LocalMachine.OpenSubKey(baseKeyName);

var versionNames = installedFrameworkVersions.GetSubKeyNames();

关于c# - 以编程方式检查 .NET Framework 版本 - 我应该这样做吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23268985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com