我正在使用InstallShield 2009,并且在单击安装向导的“完成”按钮时必须启动可执行文件。
所以,为了做到这一点,我使用自定义操作并且它工作正常,但现在,我必须在调用此自定义操作之前进行验证。我必须验证.Net框架是否已安装,如果为true,则如果未安装执行则不执行。
有人可以帮忙吗?
如果有任何不清楚的地方,请告诉我。
感谢。
答案 0 :(得分:1)
如果不存在,您似乎想要安装FW:为什么不使用先决条件?
参见例如HERE关于该主题的另一个问题。
答案 1 :(得分:0)
您应该能够将.NET可再发行组件与安装程序捆绑在一起,并通过调用LaunchApp
或LaunchApplication
来执行它。
作为对其他人答案的评论,您可以使用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,它肯定会存在。