安装Shield premiere 2009:基本MSI 从命令行输入setup.exe / s / v / qn静默安装。但是,如果它在默认情况下选择“修改”之前安装一次,而不是替换文件。但我需要再次复制文件。如何在默认情况下在第二次静默安装时执行“修复”?
答案 0 :(得分:2)
首先:看起来我们需要更多关于你想要实现的细节。是否要重新安装产品以修复任何损坏的组件,或者是否要安装新版本的产品(可能与之前的设置并排)。
威廉的回答看起来是正确的,但引号可能存在一些问题。您描述的行为表明Windows Installer无法解析命令行。我没有测试过,但尝试:
Setup.exe / s / v“/ f {11111111-1111-1111-1111-111111111111} / qn”
一些背景信息: setup.exe 是 Installshield-provider设置启动器。命令行中 / V 之后的任何内容都“按原样”传递到主Windows Installer exe文件 msiexec.exe (msiexec.exe command line parameter reference)。
请注意,Windows Installer与以前的任何部署解决方案都不同。安装MSI后,Windows Installer会记录安装的内部GUID。因此无法安装同一产品的多个实例(除非您为此设计MSI)。
一些 msiexec.exe 示例命令行:
安装:
卸载:
<强>修复强>:
管理员图片(从MSI中提取源文件):
从上述任何命令行中删除/ qn以交互方式而不是静默方式运行。
答案 1 :(得分:1)
的InstallShield @ 2009
添加以下代码:
功能OnMaintUIBefore() ... ... 开始 //如果是静音模式,则设置为修复模式并继续 if(MODE = SILENTMODE)然后 nType = REPAIR; 转到Dlg_SdFeatureTree; ENDIF;
答案 2 :(得分:1)
我刚刚找到解决方案: 对于Basic MSI,打开Property Manager视图并将属性_IsMaintenance设置为“Reinstall”。
答案 3 :(得分:0)
Setup.exe /s /v"/f {11111111-1111-1111-1111-111111111111}" /v"/qn"
其中“{11111111-1111-1111-1111-111111111111}”是您要修复的安装的ProductCode GUID。