チュートリアル : カスタム動作を使用した、インストール時のメッセージの表示

このチュートリアルでは、カスタム動作を使用してユーザー入力を受け取り、インストール中に表示するメッセージ ボックスにこれを渡す方法について、手順を説明します。 ここで簡潔に説明するカスタム動作は、他の多くの作業にも利用できます。 たとえば、カスタム動作を使用して、Setup.exe ファイルの場所をユーザー入力として受け取り、これを使用してインストール後にアプリケーションを起動させることができます。

このチュートリアルでは、カスタム動作を使用して動的なプロパティにデータを渡す方法、およびインストーラー クラスと CustomActionData プロパティの使用方法について説明します。

注意

お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio の設定」を参照してください。

カスタム動作を追加するには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスで、プロジェクトの種類 ペインの [Visual Basic] をクリックし、テンプレート ペインの [クラス ライブラリ] をクリックします。 [プロジェクト名] ボックスに「PassData」と入力します。

    新規プロジェクトがソリューション エクスプローラーに追加されます。

インストーラー クラスを作成するには

  1. [プロジェクト] メニューの [クラスの追加] を選択します。

    [新しい項目の追加] ダイアログ ボックスで、[インストーラー クラス] をクリックします。 既定の名前を使用します。

  2. デザイン サーフェイスにインストーラー クラスが表示されるので、デザイン サーフェイスを右クリックし、[コードの表示] をクリックしてコード エディターにファイルの内容を表示します。

  3. 次のプロシージャを追加して、基本クラスの InstallCommitRollbackUninstall の各プロシージャをオーバーライドします。

    Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
        MyBase.Install(stateSaver)
        Dim myInput As String = Me.Context.Parameters.Item("Message")
        If myInput Is Nothing Then
            myInput = "There was no message specified"
        End If
        MsgBox(myInput)
    End Sub
    
    Public Overrides Sub Commit(ByVal savedState As System.Collections.IDictionary)
        MyBase.Commit(savedState)
    End Sub
    
    Public Overrides Sub Rollback(ByVal savedState As System.Collections.IDictionary)
        MyBase.Rollback(savedState)
    End Sub
    
    Public Overrides Sub Uninstall(ByVal savedState As System.Collections.IDictionary)
        MyBase.Uninstall(savedState)
    End Sub
    
    public override void Install(System.Collections.IDictionary stateSaver)
    {
        base.Install(stateSaver);
        string myInput = Context.Parameters["message"];
        if (myInput == null)
        {
            myInput = "There was no message specified";
        }
        MessageBox.Show(myInput);
    }
    
    public override void Commit(IDictionary savedState)
    {
        base.Commit(savedState);
    }
    
    public override void Rollback(IDictionary savedState)
    {
        base.Rollback(savedState);
    }
    
    public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);
    }
    

    注意

    「Public Overrides」と入力し、Space キーを押すと、IntelliSense によってメソッドとプロパティの一覧が表示されます。この一覧の [Install] を選択して宣言を記述できます。

  4. ソリューション エクスプローラーで、Class1 コード ファイルを右クリックし、これが不要であるため [削除] をクリックします。

配置プロジェクトを作成するには

  1. [ファイル] メニューの [追加] をポイントし、[新しいプロジェクト] をクリックします。

  2. [新しいプロジェクトの追加] ダイアログ ボックスのプロジェクトの種類ペインの [その他のプロジェクトの種類] ノードを開き、[セットアップとデプロイメント] をクリックし、テンプレート ペインの [セットアップ プロジェクト] をクリックします。 [プロジェクト名] ボックスに「PassData Installer」と入力します。

  3. [プロパティ] ウィンドウの ProductName プロパティを選択し、「PassData」と入力します。

    また、Manufacturer プロパティを選択し、「My Company」と入力します。

  4. ファイル システム エディターで、[アプリケーション フォルダー] ノードを選択します。 [操作] メニューの [追加] をポイントし、[プロジェクト出力] をクリックします。

  5. [プロジェクト出力グループの追加] ダイアログ ボックスで、PassData プロジェクトのプライマリ出力を選択します。

    ファイル システム エディターに、[PassData (アクティブ) のプライマリ出力] が表示されます。

カスタム動作を追加するには

  1. ソリューション エクスプローラーPassData Installer プロジェクトを選択します。 [表示] メニューの [エディター] をポイントし、[カスタム動作] をクリックします。

  2. カスタム動作エディターで、(トップレベルの) [インストール] ノードを選択します。 [操作] メニューの [カスタム動作の追加] をクリックします。

  3. [プロジェクトから項目を選択] ダイアログ ボックスで、[アプリケーション フォルダー] をダブルクリックします。

  4. [PassData (アクティブ) のプライマリ出力] を選択して、[インストール] ノードに PassData カスタム動作を追加します。

  5. [プロパティ] ウィンドウの CustomActionData プロパティを選択し、「/Message="[MESSAGE]"」と入力します。

  6. InstallerClass プロパティが True (既定値) に設定されていることを確認します。

インストール ユーザー インターフェイスをカスタマイズするには

  1. ソリューション エクスプローラーで、セットアップ プロジェクトを選択します。 [表示] メニューの [エディター] をポイントし、[ユーザー インターフェイス] をクリックします。

  2. ユーザー インターフェイス エディターで、[インストール] の下の [開始] ノードを選択します。 [操作] メニューの [ダイアログの追加] をクリックします。

  3. [ダイアログの追加] ダイアログ ボックスで、[テキストボックス (A)] ダイアログを選択します。

  4. [操作] メニューの [上へ移動] をクリックします。 [テキストボックス (A)] ダイアログが [インストール フォルダー] ノードの上に来るまで繰り返します。

  5. [プロパティ] ウィンドウで BannerText プロパティを選択し、以下の文字列を入力します。

    What is your message?

  6. BodyText プロパティを選択し、以下の文字列を入力します。

    Enter your message here.

  7. Edit1Label プロパティを選択し、以下の文字列を入力します。

    Message:

  8. Edit1Property プロパティを選択し、以下の文字列を入力します。

    MESSAGE

  9. Edit2VisibleEdit3Visible、および Edit4Visible の各プロパティを選択し、それぞれに**「False」**を設定します。

  10. [ビルド] メニューの [PassData Installer のビルド] をクリックします。

開発用コンピューターにインストールするには

  • ソリューション エクスプローラーPassData Installer プロジェクトを選択します。 [プロジェクト] メニューの [インストール] をクリックします。

    開発用コンピューターでインストーラーが実行されます。 [What is your Message?] インストール ダイアログ ボックスで、「Hello World!」と入力します。.

    注意

    インストーラーを実行するには、コンピューター上でインストールを実行する権限が必要です。

ほかのコンピューターに配置するには

  1. Windows エクスプローラーで、プロジェクト ディレクトリに移動し、ビルドされたインストーラーを探します。 既定の project configuration は、Debug または Release です。

  2. PassData Installer.msi ファイル、Setup.exe ファイル、およびディレクトリ内の他のファイルとサブディレクトリすべてを別のコンピューターにコピーします。

    注意

    ネットワークに接続していないコンピューターにインストールするには、ファイルを CD-ROM などの従来のメディアにコピーしてください。

    ターゲット コンピューターで、Setup.exe をダブルクリックしてインストーラーを実行します。 [What is your Message?] インストール ダイアログ ボックスで、「Hello World!」と入力します。.

    注意

    インストーラーを実行するには、コンピューター上でインストールを実行する権限が必要です。

インストールをテストするには

  • アプリケーションを実行し、インストール中に入力した "Hello World!" というテキストが、テキスト ボックスに表示されているかどうかを確認します。

アプリケーションをアンインストールするには

  1. Windows のコントロール パネルで、[プログラムの追加と削除] または [プログラムと機能] をダブルクリックします。

  2. [PassData Installer] を選択し、[削除] または [アンインストール] をクリックします。次に、[OK] をクリックしてダイアログ ボックスを閉じます。

    ヒント

    開発用コンピューターからアンインストールするには、[プロジェクト] メニューの [アンインストール] をクリックします。

参照

参照

CustomActionData プロパティ

その他の技術情報

配置でのカスタム動作の管理