检测电脑是否有framework4.5环境的源码 不知道怎么用c#语言去写,最近在做一个程序需要检测电脑是否有环境 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 基于framework4.5做一个程序,能运行就是有环境,不能运行就是没环境。 用NSIS来打包Function GetNetFrameworkVersion;获取.Net Framework版本支持Push $104Push $005ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full""Install"06ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full""Version"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5""Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5""Version"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "InstallSuccess"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "Version"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Version"StrCmp $1 "" +1 +2StrCpy $1 "2.0.50727.832"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Version"StrCmp $1 "" +1 +2StrCpy $1 "1.1.4322.573"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0""Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0""Version"StrCmp $1 "" +1 +2StrCpy $1 "1.0.3705.0"StrCmp $0 1 KnowNetFrameworkVersion +1StrCpy $1 "not .NetFramework"KnowNetFrameworkVersion:Pop $0Exch $1FunctionEnd 除非你不用framework写检测代码,否则运行环境都没有,怎么检测,上面也给你发了,用打包工具指令 如果是windows系统,难道兄台不晓得有个wmi东东么?可以查询到系统很多参数,包括用户安装的程序列表 zhe这种问题百度一下就有答案了啊,这也来问 没安装.net framework .c#是运行不了的。 你的代码运行不了,提示需要安装framework,那就说明这台电脑没有安装了。 奇怪了。难道是我理解错了?我以为楼主是 存在.net framework低版本的情况下,去查看有没有4.5的版本。并不是说根本没有.net framework环境吧? 微软官网有啊,要学会搜索,哈哈,查询注册表,参考:https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#net_b我以前也写过这个判断的代码,在这里,你可以直接复制,哈哈:https://github.com/youbl/Beinet.cn.Tools/blob/master/MainForm.cs在这个页面搜索方法: // 获取本机安装的net版本清单public static string GetNetVersion() 不过我写的代码也需要.net环境,不管2.0还是4.0的FrameWork都可以运行,没有FrameWork,你可以用其它语言实现,反正就是查询注册表的指定位置有没有对应的键值,来判断安装了哪几个版本的FrameWork。 经过测试发现,单纯的CPU多线程处理用时是GPU处理的一半,很蛋疼,好久了不知道该如何下手解决 来来来 微软已经帮你把代码写好了https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed 必须要第三方打包软件啊!比如SetupFactory(自带检测,设置一下即可)! 自身没.NET 环境肯定运行不了,何来检测一说! /// <summary> /// Gets the .NET 4.x release number. /// The numbers are documented on http://msdn.microsoft.com/en-us/library/hh925568.aspx /// </summary> static int? GetDotnet4Release() { using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full")) { if (key != null) return key.GetValue("Release") as int?; } return null; } /// <summary> /// Gets whether the .NET 4.5 runtime (or a later version of .NET 4.x) is installed. /// </summary> public static bool IsDotnet45Installed() { return GetDotnet4Release() >= 378389; } 基于framework4.5做一个程序,能运行就是有环境,不能运行就是没环境。 一个超难的考号编排算法问题 关于字符串分割的问题 vs2003的空值判断 .net解析没有key的json数据 C#应用程序打包时怎样改变安装后的图标? ASP.NET未将对象引用设置到对象的实例(C#) 给数组中的控件添加事件函数的问题 “GenerateResource”任务意外失败。 C# bindingnavigator控件能够改变在窗体的位置吗?怎么移动它的位置? Console程序如何处理事件,比如判断用户按下了ctrl+c? c# UDP广播接收不到数据,请大神指教 c# 线程
;获取.Net Framework版本支持Push $1
04
Push $0
05
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full""Install"
06
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full""Version"
StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5""Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5""Version"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "InstallSuccess"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "Version"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Version"StrCmp $1 "" +1 +2StrCpy $1 "2.0.50727.832"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Version"StrCmp $1 "" +1 +2StrCpy $1 "1.1.4322.573"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0""Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0""Version"StrCmp $1 "" +1 +2StrCpy $1 "1.0.3705.0"StrCmp $0 1 KnowNetFrameworkVersion +1StrCpy $1 "not .NetFramework"KnowNetFrameworkVersion:Pop $0Exch $1FunctionEnd
我以为楼主是 存在.net framework低版本的情况下,去查看有没有4.5的版本。
并不是说根本没有.net framework环境吧?
https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#net_b我以前也写过这个判断的代码,在这里,你可以直接复制,哈哈:
https://github.com/youbl/Beinet.cn.Tools/blob/master/MainForm.cs
在这个页面搜索方法:
// 获取本机安装的net版本清单
public static string GetNetVersion()
没有FrameWork,你可以用其它语言实现,反正就是查询注册表的指定位置有没有对应的键值,来判断安装了哪几个版本的FrameWork。
https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed
/// <summary>
/// Gets the .NET 4.x release number.
/// The numbers are documented on http://msdn.microsoft.com/en-us/library/hh925568.aspx
/// </summary>
static int? GetDotnet4Release()
{
using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full")) {
if (key != null)
return key.GetValue("Release") as int?;
}
return null;
} /// <summary>
/// Gets whether the .NET 4.5 runtime (or a later version of .NET 4.x) is installed.
/// </summary>
public static bool IsDotnet45Installed()
{
return GetDotnet4Release() >= 378389;
}