我希望安装程序包中包含“vcredist_x86.exe”。
要求: 1)内置到msi文件,不是单独的包,不是单独安装 2)作为单个安装程序的一部分自动运行 3)仅在尚未安装的情况下运行 4)不会在用户硬盘上留下额外的副本 5)成功从命令行脚本构建安装程序文件 6)安装程序必须在运行时成功
我试过的: 1)project-> properties-> config props-> build->先决条件,然后选中“Create setup program to install prereq components”,然后选中“Visual C ++ Runtime Libraries”
问题:违反除6之外的所有要求,这是没有实际意义的。
2)在installer pro中,显示“文件系统”,然后将“vcredist_x86.exe”添加到用户的桌面或应用程序文件夹,然后在“自定义操作”下的“安装”下,右键单击 - >添加自定义操作,然后从安装位置选择“vcredist_x86.exe”。然后选择它,然后在“Arguments”下的“Properties”中,将“/ Install”更改为“/ Install / qb!” (这应该导致安装为“无人值守安装,没有取消按钮”
问题:违反了要求3,4和6.对于6:运行安装程序时,它失败并显示消息“此Windows Installer程序包有问题。程序作为一部分运行安装程序没有按预期完成。请联系您的支持人员或软件包供应商。“那将是我,我不知道该怎么做。
答案 0 :(得分:1)
让我们从一些先决条件规则和最佳实践开始:
其中大多数都会破坏您的要求。另一种方法是使用“C:\ Program Files \ Common Files \ Merge Modules”中的Visual Studio合并模块:
http://msdn.microsoft.com/en-us/library/ms235290.aspx
http://msdn.microsoft.com/en-us/library/8x727h8b.aspx
Visual Studio安装项目无法有条件地安装合并模块,因此将始终安装它们。其他设置创作工具允许您根据相关功能调整合并模块:
第三种选择是仅包含您的应用程序依赖项: http://msdn.microsoft.com/en-us/library/ms235317(VS.90).aspx
在这种情况下,只有您的应用程序才能访问运行时。此方法支持条件安装:
答案 1 :(得分:0)
好的,解决方案是使用IExpress并让它执行的东西是shell脚本(.bat文件)。
<。>在.bat文件中,让它创建“vcredist_x86”文件夹并将“vcredist_x86.exe”移入其中,然后运行setup.exe这符合我原来的所有要求。