如何验证.Net Framework是否已安装 - InstallShield 2009?

时间:2012-03-16 13:05:43

标签: c# .net .net-4.0 frameworks installshield

我正在使用InstallShield 2009,并且在单击安装向导的“完成”按钮时必须启动可执行文件。

所以,为了做到这一点,我使用自定义操作并且它工作正常,但现在,我必须在调用此自定义操作之前进行验证。我必须验证.Net框架是否已安装,如果为true,则如果未安装执行则不执行。

有人可以帮忙吗?

如果有任何不清楚的地方,请告诉我。

感谢。

3 个答案:

答案 0 :(得分:1)

如果不存在,您似乎想要安装FW:为什么不使用先决条件?
参见例如HERE关于该主题的另一个问题。

答案 1 :(得分:0)

您应该能够将.NET可再发行组件与安装程序捆绑在一起,并通过调用LaunchAppLaunchApplication来执行它。

作为对其他人答案的评论,您可以使用RegDBKeyExist函数来读取注册表并查看是否已安装.NET。

对于注册表项,您可能需要设置此选项:

REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY;

这使得注册表搜索在64位计算机上使用Wow64注册表重定向。这可能是一个问题。

另外,我认为默认的注册表根目录是HKEY_CURRENT_USER。如果您想将其更改为HKEY_LOCAL_MACHINE,可以通过调用:

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

答案 2 :(得分:0)

为什么不检查这个文件:

%SYSTEMROOT%\ Microsoft.NET \框架\ v4.0.30319 \ System.Core.dll

如果安装了框架v4,它肯定会存在。