我正在使用具有两个功能的 InstallShield 2010(基本 MSI)创建安装程序。
第一个功能包括:
第二个功能包含单个组件,它是编译为 AnyCPU 的 MS Reporting Services 的扩展。
在 UI 序列期间,我使用 InstallScript 自定义操作从 x86 和 x64 注册表树中枚举所有可用的 Reporting Services 实例。
系统会提示用户选择他想在哪个实例上部署我们的扩展。
基于选定的实例,我正在查询文件系统中 Reporting Services 实际位置的注册表,该文件系统通常类似于“C:\Program Files\Microsoft SQL Server\MSSQL.2\Reporting Services”,并将此值存储在 MSI 属性中。
然后通过使用设置目录操作,我将组件(我们的扩展)的目标目录设置为该 MSI 属性的值。
除非您尝试为 x64 Reporting Services 安装它,否则一切都安装得很好,否则扩展文件安装到错误的位置。即使你的 MSI 属性设置为正确的路径“C:\Program Files\MicroSoft...”(我已经检查过 msi 日志)它看起来系统会自动重定向到“Program Files (x86)”。
有没有可能的解决方案来克服这个问题?
最佳答案
如果需要安装到 64 位 ProgramFiles 文件夹,请使用 64 位 MSI。
关于reporting-services - 将文件从 x86 msi 安装到 x64 "Program Files",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1497754/