当我们进行升级时,我们刚开始收到上面的错误消息。但是,如果我导航到PreReq文件夹(C:\ProductName\ISSetupPrerequisites\{AAEC4BE2-1C6B-45E0-B33D-0D657A05F292}
)并运行vcredist_x86.exe并转到另一个prereq文件夹(C:\ProductName\ISSetupPrerequisites\{8034C99E-3BC0-4E53-BC6E-02E3D8CF5378}
)(按此顺序),它可以正常工作并安装。我假设其中一个用于C ++ 2005,一个用于SP1版本,但我不确定哪个是哪个。
我假设第一个版本用于第一个版本,第二个版本用于SP1,因为如果我以相反的顺序安装它们失败。有趣的是,它们都没有被选为Installshield中Redistributables选项卡的pre-req。所以问题可能是它试图安装它们的顺序。我甚至没有在IS中的可再发行组件列表中看到C ++ 2005(非SP1),但由于某种原因,发行版中包含两个vcredist_x86.exe文件,并且当以正确的顺序运行时(安装之外)它们工作细
那么如何更改安装程序中的顺序或者让它工作呢?我在我的.ism文件中将所有更改恢复到这个开始发生之前并且没有帮助。
PS我还将this question发布到InstallShield论坛。
答案 0 :(得分:0)
根据我的理解,没有理由安装这两个VC ++ 2005可再发行组件。你可能只需要更新的。
由于您说未在 Redistributables 选项卡上选中它们,这意味着它们很可能在构建时由InstallShield自动添加。发生这种情况是因为您在某些组件上将 .NET Scan at Build 选项设置为依赖关系和属性。使用此设置,InstallShield扫描组件文件并尝试添加所需的任何依赖项。 如果您知道需要哪些依赖项,则可以关闭该设置,然后在Redistributables(或Prerequisites)选项卡上自行选择必要的依赖项。
这些GUID并不神奇 - 它们只是InstallShield在其预定义先决条件中使用的GUID:
如果InstallShield不包含您需要的先决条件,则可以定义自己的先决条件。转到工具/先决条件编辑器。