如何使用Api检测系统是否安装.net Freamwork及当前的版本

请问高手:如何使用Api检测系统是否安装.netFreamwork及当前的版本(最好有c#示例代码)谢谢!(如果分不够可以再加)不好意思上面的“freamwork”打错了... 请问高手:

如何使用Api检测系统是否安装.net Freamwork及当前的版本(最好有c#示例代码)

谢谢!(如果分不够可以再加)
不好意思上面的“freamwork”打错了,应该是“Framework”
谢过[Royhwa]的关注!我说的是用api检测,因为我是在程序起动时检测的,如果当前系统没有安装Framework,那么你给的那些语句也就不能运行(肯定会报错的)!
展开
 我来答
百度网友aa7ddec
2006-09-25 · TA获得超过485个赞
知道小有建树答主
回答量:475
采纳率:0%
帮助的人:408万
展开全部
这种问题建议到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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlty01
2006-10-03
知道答主
回答量:32
采纳率:0%
帮助的人:28万
展开全部
根本就不能实现,要是没有安装.net运行库的话,你的程序就根本运行不了,建议你用别的语言(如c++)做个起动器,就是把自己的c#程序做成模块

A
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Royhwa
2006-09-23 · TA获得超过263个赞
知道答主
回答量:128
采纳率:0%
帮助的人:171万
展开全部
foreach(string file in Directory.GetDirectories(Environment.GetEnvironmentVariable("windir")+"\\Microsoft.NET\\Framework"))

然后判断v1.1.4322等等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c195d9536
2006-09-24 · 超过11用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:0
展开全部
可以利用脚本或者是调用WindowsAPI
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式