0

私は、お客様が頻繁にインストールする必要のあるいくつかのソフトウェアパッケージのインストーラー/バンドルを作成しています。基本的には、いくつかの実行可能インストーラーが含まれているだけです。ユーザーが選択したコンポーネントごとに、インストーラーを一時フォルダーに抽出して実行します。

これらのインストーラーの1つはAVRStudio5.1用であり、サードパーティ(Atmel)によって作成されています。ここからダウンロードできます:http ://www.atmel.com/Images/as5installer-stable-5.1.208-full.exe (616MB)。

残念ながら、Atmelはインストーラーの最後にAVR Studio 5.1を起動するオプションをユーザーに提供するチェックボックスを追加し、デフォルトでチェックされています。 AVRStudio5.1終了画面

ほとんどのユーザーがおそらくそうするように、ユーザーが「完了」をクリックするだけの場合、AVR Studio 5が画面を引き継ぎ、インストーラーはバックグラウンドのままになります。ユーザーはおそらく私のインストーラーを忘れて、バンドルの他のコンポーネントのインストールを完了できなくなるでしょう。

誰かがこれに対する良い解決策を考えることができますか?私はいくつか考えました:

1)サードパーティのインストーラーはInstallShieldで作成されているようです。コマンドラインオプションをInstallShieldインストーラーに渡して、チェックボックスを無効にしたり、デフォルトの状態をオフに変更したりする標準的な方法はありますか?

BringToFront2)現在の解決策は、サードパーティのインストーラーが終了してから10秒間スリープし、NSISのコマンドを使用してインストーラーウィンドウを前面に表示することです。Windows 7 Proで動作しますが、常に動作するとは限らず、代わりにウィンドウを強調表示するだけの場合もあると聞きました。

3)サイレントインストールを実行しても機能しないようです。コマンドラインから試してみると、サードパーティのインストーラーが少しだけ実行されてから終了します。それがうまくいくなら、私に知らせてください。

4)残念ながら、サードパーティのインストーラーを最後に実行することはできません。他のインストーラーの1つを実行して、いくつかのファイルをインストールディレクトリにコピーする必要があるためです。

私のインストーラーは、違いがあればNSISで書かれています。アドバイスありがとうございます!


アップデート1、2012-02-27、午後6時30分:

Michael Urman(InstallShieldのテクニカルリード!)とChristopherPainterからのヒントに感謝します。Christopherによると、問題のインストーラーはInstallScript InstallShieldインストーラーであり、MSIベースのInstallShieldインストーラーではありません。InstallScriptとInstallScriptMSIに関するこの記事を見つけたので、違いを理解するのに役立ちました。

インストーラーからファイルを抽出する方法は2つあります。UniExtractを使用する方法とを実行する方法as5installer-stable-5.1.208-full.exe /extract_all:c:\extractです。これらの2つの方法は、同じファイルのセットを抽出するように見えます。これは次のように表示されます。

/extract_allオプションから取得したファイル。

* .cabファイルをダブルクリックするか、UniExtractを使用して抽出できません。UniExtractを使用してsetup.exeを抽出できません。setup.exeを実行できますが、5installer-stable-5.1.208-full.exeと同じように動作するようです。サイレントインストールを試みたときに作成したファイルに似たsetup.issファイルがあります。必要に応じて、setup.issの内容を確認できます。

私は疑問に思います:インストーラー内にsetup.exeがあるのは正常ですか、それともAtmelは何か奇妙なことをしていますか?このsetup.exeを実行することは、as5installer-stable-5.1.208-full.exeを実行することと同じですか?また、インストーラー内にsetup.issがあるのは正常ですか、それはどのような目的に役立ちますか?

7-zipを使用してインストーラーでファイルを確認することもできますが、これは完全に抽出されていないように見える別のファイルのセットです。

クリストファーの提案は、.issファイルの最後にあるbOpt1、bOpt2、またはbOpt3オプションの1つが、無効にしようとしているチェックボックスに対応しているというものでした。それをMichaelの提案と組み合わせて、次のコマンドを使用してAVRStudio5.1をインストールしてみました。

as5installer-stable-5.1.208-full.exe /v"bOpt1=0 bOpt2=0 bOpt3=0"
as5installer-stable-5.1.208-full.exe /v"bOpt1= bOpt2= bOpt3="
setup.exe /v"bOpt1= bOpt2= bOpt3="

残念ながら、私は行動の違いを観察しませんでした。チェックボックスはオンのままで、[完了]をクリックするとAVRStudio5.1が起動します。たぶん私は間違った方法でコマンドラインで複数のプロパティオーバーライドを指定していますか?試すべきアイデアがもう少しありますが、他の誰かにもアイデアがあるかどうか知りたいです。サイレントインストールを行わずに.issファイルを使用する方法はありますか、それともその唯一の目的ですか?

4

2 に答える 2

2

チェックボックスはプロパティに関連付けられており、通常、これらはパブリック プロパティになります。msiexec /i the.msi PROPERTY=override-valueその場合、コマンド ラインで、またはのいずれかでそのプロパティをオーバーライドできる可能性がありますsetup.exe /v"PROPERTY=override-value"。ただし、それがプライベート プロパティであるか、インストーラー内でオーバーライドされている可能性があります。その場合、代わりに変換を作成する必要がある場合があります。(コマンド ラインの TRANSFORMS プロパティにリストすることで、変換を適用します。)

インストールが InstallScript ベースのものであるという更新に照らして、上記のコマンド ラインの推奨事項は適用されません。カスタム スクリプトを使用すると、それら (または同様のもの) を機能させることができますが、一般的ではありません。/rより一般的なのは、サイレント スクリプトのサポートです/s。ただし、問題のインストールはサイレント スクリプトで既に何か興味深いことを行っている可能性があるため、このアプローチを統合するとうまくいかない可能性があります。(Chris のように) 再パッケージ化するか、ベンダーに連絡することをお勧めします。

于 2012-02-24T13:24:55.960 に答える
1

わかりました、ついにその EXE をダウンロードする自由な時間を見つけました。これが私が見つけたものです。

MSI ではなく、InstallScript インストーラーです。したがって、次のコマンドを実行します(昇格したコマンドプロンプトから):

as5installer-stable-5.1.208-full /extract_all:c:\extract

C:\extract\disk1 にあるファイルを取得します。

InstallScript プロジェクトでは、UI を記録して再生するという概念があります。

  • /r - 記録
  • /s - サイレント
  • /f1 - サイレント応答ファイル ( .iss ) へのパス
  • /f2 - ログ ファイルへのパス

パッケージには既に setup.iss ファイルがあります。その最後を見てください:

[{D574D18C-9D52-4B4B-9647-AE6B89FD3F70}-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
bOpt3=0

これらのブール値オプションの 1 つは、変更する必要がある値です。残りはあなたに任せます。新しい ISS ファイルを記録する必要があるかもしれません。また、何をしてもそのチェックボックスを常に true に設定するようなひどいインストール スクリプトを誰かが書いた可能性は常にあります。そのような場合、再パッケージ化ツールを分解して MSI 形式に変換する必要があります。

于 2012-02-27T04:40:21.867 に答える