如何使用Api检测系统是否安装.net Freamwork及当前的版本
请问高手:如何使用Api检测系统是否安装.netFreamwork及当前的版本(最好有c#示例代码)谢谢!(如果分不够可以再加)不好意思上面的“freamwork”打错了...
请问高手:
如何使用Api检测系统是否安装.net Freamwork及当前的版本(最好有c#示例代码)
谢谢!(如果分不够可以再加)
不好意思上面的“freamwork”打错了,应该是“Framework”
谢过[Royhwa]的关注!我说的是用api检测,因为我是在程序起动时检测的,如果当前系统没有安装Framework,那么你给的那些语句也就不能运行(肯定会报错的)! 展开
如何使用Api检测系统是否安装.net Freamwork及当前的版本(最好有c#示例代码)
谢谢!(如果分不够可以再加)
不好意思上面的“freamwork”打错了,应该是“Framework”
谢过[Royhwa]的关注!我说的是用api检测,因为我是在程序起动时检测的,如果当前系统没有安装Framework,那么你给的那些语句也就不能运行(肯定会报错的)! 展开
4个回答
展开全部
这种问题建议到bbs.csdn.net去问
根据Applied Microsoft .NET Framework Programming上的说法,是检查
%windir%\system32\MSCorEE.dll是否存在
以下摘自微软中国社区网站 《把.NET程序部署到没有安装.NET Framwork的机器上》 作者 张广辉
原文见 http://www.microsoft.com/china/community/article.asp?oBODY=TechZone/TechArticle/TechDoc/deployNETApp&oXSLT=TechZone/TechArticle/TechContent
如果我们要把自己的.NET程序发布到目标机器上,同时我们不确定该目标机器是否已经安装了.NET Framework, 那我们就需要自己设计一段unmanaged代码,来判断目标机器是否安装了.NET Framework, 如果没有,则运行Dotnetfx.exe安装.NET Framework, 然后利用Windows Installer安装自己的程序。
在MSDN的下面网页上,我们可以获得一个使用unmanaged C++实现的安装程序和它的源代码:
http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/830/msdncompositedoc.xml
1. 在CSettings class中,通过读取"settings.ini",获得您自己的MSI安装文件和dotnetfx.exe的路径,以及其他您自己的设置。(比如.NET Framework的语言版本)
GetCaptionText(void)
GetDialogText(void)
GetErrorCaptionText(void)
GetIniName(void)
GetProductName(void)
Parse()函数用来解析settings.ini文件。
2. 在Main.cpp文件中,全局函数FxInstallRequired()判断是否要在目标机器上安装.NET Framework. FxInstallRequired()会检测下面的注册表键值和dotnetfx.exe的版本和语言设置。
HKLM\SOFTWARE\Microsoft\.NETFramework\policy\v1.0
3.如果需要安装.NET Framework, 在全局函数ExecCmd()中调用下面的命令silent安装dotnetfx.exe:
dotnetfx.exe /q:a /c:"install /l /q"
4。 在ExecCmd()全局函数中调用下面的命令安装您自己的MSI文件:
msiexec /i <your MSI file> REBOOT=ReallySuppress
根据Applied Microsoft .NET Framework Programming上的说法,是检查
%windir%\system32\MSCorEE.dll是否存在
以下摘自微软中国社区网站 《把.NET程序部署到没有安装.NET Framwork的机器上》 作者 张广辉
原文见 http://www.microsoft.com/china/community/article.asp?oBODY=TechZone/TechArticle/TechDoc/deployNETApp&oXSLT=TechZone/TechArticle/TechContent
如果我们要把自己的.NET程序发布到目标机器上,同时我们不确定该目标机器是否已经安装了.NET Framework, 那我们就需要自己设计一段unmanaged代码,来判断目标机器是否安装了.NET Framework, 如果没有,则运行Dotnetfx.exe安装.NET Framework, 然后利用Windows Installer安装自己的程序。
在MSDN的下面网页上,我们可以获得一个使用unmanaged C++实现的安装程序和它的源代码:
http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/830/msdncompositedoc.xml
1. 在CSettings class中,通过读取"settings.ini",获得您自己的MSI安装文件和dotnetfx.exe的路径,以及其他您自己的设置。(比如.NET Framework的语言版本)
GetCaptionText(void)
GetDialogText(void)
GetErrorCaptionText(void)
GetIniName(void)
GetProductName(void)
Parse()函数用来解析settings.ini文件。
2. 在Main.cpp文件中,全局函数FxInstallRequired()判断是否要在目标机器上安装.NET Framework. FxInstallRequired()会检测下面的注册表键值和dotnetfx.exe的版本和语言设置。
HKLM\SOFTWARE\Microsoft\.NETFramework\policy\v1.0
3.如果需要安装.NET Framework, 在全局函数ExecCmd()中调用下面的命令silent安装dotnetfx.exe:
dotnetfx.exe /q:a /c:"install /l /q"
4。 在ExecCmd()全局函数中调用下面的命令安装您自己的MSI文件:
msiexec /i <your MSI file> REBOOT=ReallySuppress
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根本就不能实现,要是没有安装.net运行库的话,你的程序就根本运行不了,建议你用别的语言(如c++)做个起动器,就是把自己的c#程序做成模块
A
A
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
foreach(string file in Directory.GetDirectories(Environment.GetEnvironmentVariable("windir")+"\\Microsoft.NET\\Framework"))
然后判断v1.1.4322等等
然后判断v1.1.4322等等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以利用脚本或者是调用WindowsAPI
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询