1

VS2010セットアッププロジェクトがあります。セットアッププロジェクトには、カスタムダイアログとカスタムアクションがあります。どちらも機能します。カスタムアクションをデバッグすることもでき、ユーザーがカスタムダイアログで提供した入力を正しく受け取ります。

ユーザー入力を検証し、入力が有効な場合にのみユーザーが次のステップに進むことを許可したいと思います。MessageBox.Showを使用してメッセージボックスを表示できますが、ユーザーが入力を修正するまで次の手順に進まないようにするにはどうすればよいですか?

public override void Install(IDictionary stateSaver)
{
    base.Install(stateSaver);
    string myInput = Context.Parameters["MY_INPUT"]; // Value from custom dialog
    if (myInput ..... )
    {
        // Not a valid input, we do not want to proceed to the next step 
        MessageBox.Show("Not a valid input, please correct it");

        // What to do here? 
        // How can I tell the Installer do not accept this input?
    }
    else
    {
        // Valid input...
    }
 }

答えのためのThx

4

1 に答える 1

1

これを実現する最も簡単な方法は、カスタム アクションからプロパティを設定し、そのプロパティを使用して、ユーザーが [次へ] ボタンを押したときに呼び出される NewDialog イベントを条件付けすることです。条件が true でない場合、イベントは実行されません。

.NET インストーラー クラスのカスタム アクションは、そのコードからプロパティを直接設定することはできませんが、C# コードを使用して、次の例のように、プロパティを取得/設定できる別の種類のカスタム アクションを記述することができます: http://www.advancedinstaller. com/user-guide/qa-c-sharp-ca.html

編集: Orca を使用して VS から生成された MSI を編集することでそれを行うことができますが、Binary、CustomActions、ControlEvent などの複数のテーブルを手動で編集する必要があるため、これは非常に面倒です。それを始めるためのヒントを次に示します。http://support.microsoft.com/kb/255905
別の方法として、より高度なセットアップ オーサリング ツールを使用してセットアップ パッケージの作成を切り替えることもできます。無料で強力なものを使いたい場合は、WiX ( http://wix.sourceforge.net/ ) をお勧めします。使い始めるまでに時間がかかりますが、Orca で編集するよりもはるかに高速です。プロジェクトをさらに迅速かつ簡単に編集できる商用の代替手段は、Advanced Installer ( http://www.advancedinstaller.com)、ただし、達成するために必要なものには Enterprise ライセンスが必要です。

于 2013-02-12T10:07:48.157 に答える