7

ソリューションに2つのプロジェクトがあります

  1. Windowsサービス

  2. そのセットアッププロジェクト

セットアッププロジェクトからProjectInstaller : System.Configuration.Install.Installerを取得するには、OnAfterInstallというメソッドが必要です。ProductNameそれ、どうやったら出来るの?

4

1 に答える 1

8

セットアッププロジェクト内でプロジェクトを右クリックし、[表示]>[カスタムアクション]を選択します。カスタムアクションを追加します。次に、[出力の追加]を選択し、Webサービスプロジェクトを選択して、[OK]をクリックします。

次に、カスタムアクションを選択し、次のCustomActionDataようなものを含むようにプロパティを設定します/ProductName=[PRODUCTNAME] /whateveryouwant=[Whateveryouwant](これらはキーと値のペアであることに注意してください。つまり、製品名にアクセスするためProductNameのキーであり、値はですPRODUCTNAME)。

CustomActionDataインストーラークラスに渡されるパラメーターが含まれていることに注意してください。これPRODUCTNAMEは、ユーザーインターフェイスダイアログの入力コントロールに関連付けられたプロパティ名です。したがって、この場合、yorインストーラー内でユーザーに製品名の入力を求めます。したがって、ラベルは「製品名」であり、対応するプロパティは次のように設定する必要がありますPRODUCTNAME(明らかにこれを変更できますが、UIプロパティ名はのプロパティ名と同じである必要がありますCustomActionData)。働くために。

これで、インストーラークラス内で、次のようにして製品名を取得できます。

public override void Install(IDictionary stateSaver)
{
      // If you need to debug this installer class, uncomment the line below
      //System.Diagnostics.Debugger.Break();

       string productName = Context.Parameters["ProductName"].Trim();

       string whateveryouwant = Context.Parameters["whateveryouwant"].Trim();
}

//System.Diagnostics.Debugger.Break();インストーラークラスをデバッグできるように、コメントできるコメント付きコードを含めたことに注意してください。

お役に立てれば。

于 2010-01-15T10:40:08.777 に答える