前々回自作のアセンブリのインストールで、[参照の追加]ダイアログに表示するには?
で作成したソリューションを流用します。
ソリューションにクラスライブラリ「Action1」を追加し、Installerクラスを継承したInstaller1クラスを作成します。
Installer1.vb
<System.ComponentModel.RunInstaller(True)> _ Public Class Installer1 Inherits System.Configuration.Install.Installer Public Overrides Sub Install( _ ByVal stateSaver As System.Collections.IDictionary) MyBase.Install(stateSaver) Dim id As String = Me.Context.Parameters("id") Dim pswd As String = Me.Context.Parameters("pswd") System.Windows.Forms.MessageBox.Show("ID:" & id & " PSWD:" & pswd) End Sub End Class
MSDNライブラリ RunInstallerAttribute クラス
MSDNライブラリ Installer クラス
セットアッププロジェクトを選択し、右クリックメニューより「表示」→「カスタム動作」をクリックします。
カスタム動作エディタが表示されます。
「インストール」を選択し、右クリックメニューより「カスタム動作の追加」をクリックします。
「プロジェクトから項目を選択」ダイアログが起動します。
「プロジェクトから項目を選択」ダイアログの検索対象コンボボックスを「アプリケーションフォルダ」に変更し
「出力の追加」ボタンをクリックします。
「プロジェクト出力グループの追加」ダイアログより「Action1のプライマリ出力」を追加します。
カスタム動作エディタの「インストール」ノードに「Action1のプライマリ出力」が追加されますので
「Action1のプライマリ出力」を右クリックし、プロパティウインドウを表示します。
CustomActionDataプロパティを「/id=[ID] /pswd=[PSWD]」と入力します。
[ID]と/の間に半角スペースがありますので注意してください。
Installerクラスを使ったカスタムアクションにデータを渡すときは、
CustomActionDataプロパティに「/パラメータ名=パラメータ値」という形式で指定します。
複数のデータを渡す場合は、スペース文字で区切ります。
また、Windows Installerのプロパティを使うときは、[]で囲みます。
Installerクラス内でデータを取得するには、InstallContext.Parametersプロパティを使います。
つまり
カスタム動作のCustomActionDataプロパティでは
前回セットアッププロジェクト ユーザーインターフェースで追加した
テキストボックス(A)ダイアログのEdit1Propertyプロパティの値とEdit2Properyプロパティの値を、id、pswdというパラメータ名でInstallerクラスに渡すよう設定します。
Installer1クラスでは、Me.Context.Parameters("id")でパラメータ名がidのパラメータ値を取得しています。
動作確認
セットアッププロジェクトをビルドし、インストールを実行します。
ID、パスワードに適当に値を入力します。
インストール終了後に、ID、パスワードが表示されればOKです。
捕捉
VSのセットアップの機能ではインストール終了後にカスタム動作が発生します。
たとえばID、パスワードを入力し「次へ」ボタンで条件分岐を行いたいなどの要件には対応できません。
ORCAなどを使って追加作業を行うか、VSセットアッププロジェクトではなく、WiXやInstalllShieldなどのインストーラ作成ツールを使用する必要があります。
0 件のコメント:
コメントを投稿