2

InstallShield(Limited Edition)inを使用してセットアップを作成していますVS2012。まず、セットアップファイルを作成しました。他にもやるべきことがあるので、プロジェクトを作成し、それをexe新しいカスタム アクションとして追加しましたAfter Initialization(Before First Dialog)

カスタム アクション InstallShield イメージ

ここで、コマンド ラインからこのセットアップを実行し、パラメーターを渡します。%1 を使用して、コマンド ラインから入力された最初のパラメーターを取得しようとしましたが、機能しません。コマンドラインを使用してパラメータを渡し、exeファイルで使用する方法を教えてください。

4

1 に答える 1

3

何かが欠けていない限り、InstallShield Limited Edition はこれをサポートしていません。

Windows インストーラーの観点から、あなたが参照しているものは、セキュア カスタム パブリック プロパティと呼ばれます。(参照: SecureCustomProperties プロパティ)

コマンドラインを考えてみましょう:

msiexec /i foo.msi SERVERNAME=MyServer

SERVERNAME が大文字であるという事実は、それを公開します。SecureCustomProperties プロパティにリストされているという事実は、それをセキュアにします。UAC を考慮すると、安全なパブリック プロパティのみが機能します。プロセスがすでに昇格されている場合は、安全である必要はありませんが、安全であるべきです。

カスタム アクション側からは、[SERVERNAME] を使用して SERVERNAME プロパティの値を参照していました。

もちろん、誰かが MSI を実行するだけの場合に備えて UI エクスペリエンスをカスタマイズしたいと思うでしょうが、InstallShield 限定版はこれをサポートしていません。

WiX マージ モジュールを使用したり、ビルドされた MSI に変換を適用したりする方法を考えることができますが、これには高度な MSI の知識が必要であり、通常は Professional にアップグレードする方が簡単です。

于 2013-04-10T14:27:10.220 に答える