私は、お客様が頻繁にインストールする必要のあるいくつかのソフトウェアパッケージのインストーラー/バンドルを作成しています。基本的には、いくつかの実行可能インストーラーが含まれているだけです。ユーザーが選択したコンポーネントごとに、インストーラーを一時フォルダーに抽出して実行します。
これらのインストーラーの1つはAVRStudio5.1用であり、サードパーティ(Atmel)によって作成されています。ここからダウンロードできます:http ://www.atmel.com/Images/as5installer-stable-5.1.208-full.exe (616MB)。
残念ながら、Atmelはインストーラーの最後にAVR Studio 5.1を起動するオプションをユーザーに提供するチェックボックスを追加し、デフォルトでチェックされています。
ほとんどのユーザーがおそらくそうするように、ユーザーが「完了」をクリックするだけの場合、AVR Studio 5が画面を引き継ぎ、インストーラーはバックグラウンドのままになります。ユーザーはおそらく私のインストーラーを忘れて、バンドルの他のコンポーネントのインストールを完了できなくなるでしょう。
誰かがこれに対する良い解決策を考えることができますか?私はいくつか考えました:
1)サードパーティのインストーラーはInstallShieldで作成されているようです。コマンドラインオプションをInstallShieldインストーラーに渡して、チェックボックスを無効にしたり、デフォルトの状態をオフに変更したりする標準的な方法はありますか?
BringToFront
2)現在の解決策は、サードパーティのインストーラーが終了してから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つの方法は、同じファイルのセットを抽出するように見えます。これは次のように表示されます。
* .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ファイルを使用する方法はありますか、それともその唯一の目的ですか?