0

私はソフトウェアを持っています。Windows 用の GUI セットアップと Linux 用の CLI install.sh があります。実行時にユーザーにライセンスを受け入れるように求め、同意すると、インストール場所、キー、サーバー IP、ポート、およびいくつかのオプションを次々に要求します。ユーザーがファイルをダブルクリックすると、次のステップでソフトウェアがインストールされるように、無人でインストールしたいと考えています。任意の提案、前もって感謝します。

4

3 に答える 3

2

答えは、使用している InstallShield プロジェクトの種類によって異なります。基本の MSI を強くお勧めします。InstallScript カスタム アクションは問題ありませんが、InstallScript または InstallScript MSI プロジェクト タイプを使用しないでください。

上記を前提として、セキュアなカスタム パブリック プロパティを作成して、コマンド ラインで渡すことができるようにします。また、カスタム ダイアログを作成して、対話型インストール中に値を入力できるようにします。次に、両方のシナリオで不正なデータから保護できる検証カスタム アクションを作成します。最後に、レジストリ、INI、XML などのシステム変更のプロパティを使用して、アプリケーションの必要な場所に適用できるようにします。

サイレント インストールは次のようになります。

msiexec /I foo.msi /qn INSTALLDIR=C:\FOO KEY=12345 SERVERIP=10.0.0.1 PORT=12345 /l*v install.log

また、プロパティは MSI によって自動的に永続化されないという概念も理解しておいてください。アップグレード/パッチ/修復のシナリオで再利用するために保存された値を取得するには、いくつかの AppSearch/システム検索が必要です。

于 2013-05-10T15:39:09.120 に答える
1

必要なのはサイレントモードと呼ばれるものです。このキーワードについては、インストール システムのマニュアルを確認してください。

多くのインストール システムがサポートしています。まだセットアップの作成を開始していない場合は、NSIS (/SILENT パラメータ) または Inno Setup (/SILENT、/VERYSILENT) を使用することをお勧めします。これらは無料 (オープン ソース) のインストール システムであり、非常に強力です。

この機能には注意してください。アプリケーション アイコンをクリックしても何も起こらない (ウィンドウが開かない) と、多くのユーザーが混乱します。

于 2013-05-10T13:24:32.833 に答える
0

わかりましたこれは、expect ツール (無料) を使用して行いました。ここで、install.sh は自動的に実行するファイルであり、send はインストール中に尋ねられる質問に応答するオプションです。これに続いて何か問題があれば教えてください。

!/usr/local/bin/expect
spawn "./install.sh"
set timeout 2
expect {警告: RVS をルートとしてインストールすることを強くお勧めします。インストーラーをルートとして実行しますか [Y/n]}
send "Y\r"
send "xxxxxx\r"
expect {Enter キーを押して使用許諾契約を読みます:}
send "ENTER\r"
expect {同意しますか?ライセンス契約 [y/N]?}
send "y\r"
expect {ツールをどこにインストールしますか [/usr/local/pkg/RVS/v3.1a]?}
send "ENTER\r"
expect {どこにツールのリンクを作成しますか [/usr/local/bin]?}
send "ENTER\r"
expect {ライブラリのリンクを作成したい場所 [usr/local/lib]}
send "ENTER\r"
expect {どのライセンス タイプを使用しますか [N/f/a]?}
send "f\r"
expect {IP アドレス:}
send "1.1.1.1\r"
expect {Port:}
send "33\r"
expect {SERVERKEY}
send "xxxxxxxxxxxx\r"
expect {GNAT Pro {6.0、6.1、6.4} のサポートをインストールしますか (この機能を使用するには GNAT Pro ライセンスが必要です) [y/N]?}
send "y\r"
expect {インストールを続行しますか [Y/n]?}
send "y\r"
spawn "rvsinfo"
interact

于 2013-05-13T13:06:22.953 に答える