1

答えを探すのに時間を費やしましたが、まだこれを理解することはできません。

このコマンドを実行してサイレント インストールできる MSI ファイルがあります。

msiexec.exe /i theapp.msi /q INSTALLDIR=C:\myapp CLIENTDATA=34542@localhost.com

Inno を使用して、次のことを試みましたが、MSI がサイレント モードでインストールされません。私が受け取ったのは、このウィンドウ画像が自動的にポップアップするため、コマンドを msiexec プロセスに渡す際に問題があることは明らかです。

#define MyAppName "fooApp"
#define MyAppVersion "1.0"
#define MyAppPublisher "fooUser"
#define MyAppURL "http://foo.com"
#define MyAppExeName "MyProg.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{E633BAE8-81C7-4190-9964-D86287FAA8F4}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
CreateAppDir=no
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
ShowTasksTreeLines=True

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "D:\theapp.msi"; DestDir: "    {tmp}";
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Run]
Filename: "msiexec.exe"; Parameters: "/i /q CLIENTDATA=34542@localhost.com    {tmp}\theapp.msi"""; Flags: runascurrentuser shellexec

[Run] セクションの下で、この行を使用すると、MSI が対話モードで正しく起動されます。このモードでは、ユーザーがパラメーターを手動で入力する必要がありますが、これは m に実行してほしくありません。

Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\theapp.msi"""

別の投稿で、誰かがこの関数の使用について言及しているのを見ましたが、実際の使用方法に関するサンプル コードは見つかりませんでした。

function ParamStr(Index: Integer):

ここで方向性をありがとう。

4

2 に答える 2

0

これが、私がやりたいことを行う方法を見つけた1つの方法です。

Filename: "msiexec.exe"; Parameters: "/i {tmp}\theapp.msi /qb CLIENTDATA=34542@localhost.com"; Flags: runascurrentuser shellexec
于 2012-10-16T01:37:33.677 に答える
0

「msiexec.exe」行で「/passive」パラメータを使用します。

例: ソース: "D:\Onedrive\vbfiles\InstaladorCrystal\CRRedist2005_x86.msi"; DestDir: {tmp}; CopyMode: 常に上書きします。

ファイル名: "msiexec.exe"; パラメータ: "/i ""{tmp}\CRRedist2005_x86.msi"" /passive "; WorkingDir: "{tmp}"; StatusMsg: "Crystal Reports 32 ビットをインストールしています..."; チェック: IsWin64() ではありません。フラグ: skipifsilent

于 2017-02-15T16:00:05.350 に答える