2017-10-20 2 views
0

インストーラに問題があり、ユーザー入力のいくつかのフィールドを取得する必要があります。 VSにテキストボックスUIダイアログがあるとします。このダイアログでは、最初のフィールドのプロパティ名を「URI」に設定しています。私は見つけることができるすべての記事、StackOverflowの記事などは、私はそうのように、その値にアクセスする必要があります私に言っている:インストーラクラスのC#インストーラUIにアクセスできないプロパティ

public override void Install(IDictionary stateSaver) 
{ 
    base.Install(stateSaver); 

    string uri = this.Context.Parameters["URI"]; 

} 

が、これは動作しません。私が得ているのは空の文字列です。何故ですか?私は何をする必要がありますか?

+1

おそらく、この問題は次のようなものです。https://stackoverflow.com/questions/11253460/deployment-this-context-parameters-not-available-throughout-installation-proces –

答えて

0

これは、CustomActionの名前と同じ名前と大文字を使用してCustomAction Dataプロパティを渡した例が原因で、誤って解釈されていました。具体的には、テキストボックスのUIダイアログで「Edit1Property」の値を「URI」として指定した場合、入力された値がContext.Parameters ["URI"]に渡されると意味していました。これにはステップがありません。アレックスの答え、具体的にはthis articleが彼が提案した答えにリンクされているので、それを使用するカスタムアクションのCustomActionDataフィールドに渡す必要がある各プロパティも追加する必要があります。

アレックスありがとうございます。

関連する問題