Shield Premier 2009 をインストールします。コマンド ラインから setup.exe /s /v/qn と入力して基本的な MSI をサイレント インストールします。ただし、デフォルトで「変更」を選択する前に一度インストールすると、ファイルを置き換えることはありません。しかし、ファイルを再度コピーする必要があります。デフォルトで 2 回目のサイレント インストールで「修復」を実行する方法は?
4 に答える
まず第一に、あなたが達成しようとしていることについて、もう少し詳細が必要なようです。壊れたコンポーネントを修正するために製品を再インストールしますか、それとも新しいバージョンの製品をインストールしますか (以前のセットアップと並行してインストールする可能性があります)。
ウィリアムの答えは正しいように見えますが、引用符に問題がある可能性があります。説明した動作は、Windows インストーラーがコマンド ラインを解析できなかったことを示しています。私はこれをテストしていませんが、試してみてください:
Setup.exe /s /v"/f {11111111-1111-1111-1111-111111111111} /qn"
背景情報: setup.exeはInstallshield-provider セットアップ ランチャーです。コマンド ラインの/Vの後にあるものはすべて、メインの Windows インストーラー exe ファイルmsiexec.exe ( msiexec.exe コマンド ライン パラメーター リファレンス)に "そのまま" 渡されます。
Windows インストーラーは、以前の展開ソリューションとは異なることに注意してください。MSI をインストールすると、Windows インストーラーはインストールの内部 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 を削除して、サイレントではなく対話的に実行します。
解決策を見つけました。基本的な MSI の場合、プロパティ マネージャー ビューを開き、プロパティ _IsMaintenance を「再インストール」に設定します。
InstallShield@2009
次のコードを追加します。
function OnMaintUIBefore() ... ... begin // サイレント モードの場合は修復モードに設定し、次に進みます if (MODE = SILENTMODE) then nType = REPAIR; Dlg_SdFeatureTree に移動します。endif;
Setup.exe /s /v"/f {11111111-1111-1111-1111-111111111111}" /v"/qn"
"{11111111-1111-1111-1111-111111111111}" は、修復するインストールの ProductCode GUID です。