0

我一直在从事 Visual Studio 安装和部署项目,该项目具有在系统中安装 JRE 的先决条件。我正在使用搜索和启动条件来检查 JRE 注册表项,并基于该条件为用户提供下载 JRE 并在安装后继续的 URL。

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

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

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

4

1 回答 1

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 手动添加该位以查看是否有帮助。

于 2014-05-14T17:39:53.317 回答