Visual Studio安装项目,带有基于32/64位系统的条件启动子句

时间:2014-05-13 16:22:00

标签: setup-project vdproj

我一直致力于Visual Studio设置&部署项目,其中包含安装在系统中的JRE的先决条件。我正在使用搜索和启动条件来检查JRE注册表项,并基于为用户提供下载JRE的URL并在安装后继续。

虽然这有效,但要求是能够基于32/64位操作系统搜索正确的注册表位置,并为用户提供32/64位JRE的相应下载URL。

我无法弄清楚VS.Net安装项目是否有可能根据安装程序是在32位还是64位系统中运行来提供条件搜索和/或启动条件。根据我的理解,我们应该创建两个针对32位和64位系统的独立安装程序。

任何人都可以对此有所了解。

1 个答案:

答案 0 :(得分:0)

是的,你应该创建两个安装程序,每个架构一个:

http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx

然而另一个问题是,在VS安装项目中的注册表搜索中始终存在一个错误,该错误打破了64位注册表搜索。使用搜索构建x64安装项目,然后获取MSI编辑器(例如Orca,从Windows SDK中的Orca.msi安装)。打开x64 MSI并转到RegLocator表,该表应填充有关搜索的一些数据。

http://msdn.microsoft.com/en-us/library/aa371171(v=vs.85).aspx

您可能会发现Type字段没有设置msidbLocatorType64bit,因此即使是x64搜索也会搜索32位注册表,因此如果缺少Orca,请手动添加该位以查看它是否有帮助。