InstallShield 2009基本MSI静默安装:默认情况下如何设置“修复”

时间:2009-06-24 09:31:42

标签: windows-installer default installshield mode

安装Shield premiere 2009:基本MSI 从命令行输入setup.exe / s / v / qn静默安装。但是,如果它在默认情况下选择“修改”之前安装一次,而不是替换文件。但我需要再次复制文件。如何在默认情况下在第二次静默安装时执行“修复”?

4 个答案:

答案 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 示例命令行:

安装

  • msiexec.exe / i MySetup.msi / q

卸载

  • msiexec.exe / x MySetup.msi / qn
  • msiexec.exe / x {11111111-1111-1111-1111-111111111111} / qn

<强>修复

  • msiexec.exe / f MySetup.msi / qn
  • msiexec.exe / f {11111111-1111-1111-1111-111111111111} / qn

管理员图片(从MSI中提取源文件):

  • msiexec.exe / a MySetup.msi TARGETDIR =“C:\ ExtractSourcesHere”

从上述任何命令行中删除/ 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。