如何在安装项目中编写自定义对话框?

时间:2014-05-13 10:31:51

标签: .net winforms setup-project

我为.net应用程序创建了一个安装项目。我想在安装文件夹选择后添加另一个对话框。我在用户界面面板中添加了该对话框。 enter image description here

它正确地向我展示。

enter image description here

现在,我想根据CustomInstallerClass中的选定选项编写一些代码。但是,我不知道如何在Commit进程中获取该值(选定单选按钮)。所以,我可以根据单选按钮选择进行进一步的处理。

我不能使用Wix或任何其他第三方工具来创建该包。我还在SO上阅读了一些其他帖子,如this。但是,我找不到任何解决方案。

编辑:

我正在使用这些代码来检索上下文中的可用参数。但在结果中我无法从我的自定义对话框中找到任何参数。

protected override void OnCommitted(System.Collections.IDictionary savedState)
{
    string Values = string.Empty;
    foreach (string skey in this.Context.Parameters.Keys)
        Values += skey + Environment.NewLine;
    MessageBox.Show(Values);
    base.OnCommitted(savedState);            
}

结果显示如下。

action
installtype
assemblypath
logfile

1 个答案:

答案 0 :(得分:2)

MS似乎已经删除了在从VS中取出安装项目时如何执行此操作的演练。但是,如果你查看那个RadioButtons(2)对话框的属性窗口,你会看到有一个大写的属性名,可能是BUTTON2。将设置为0或1.将参数传递给install方法的方式就像参数一样,所以你要添加像/ MyButton = [BUTTON2]这样的东西,我想你需要括号。然后在安装程序类中,您可以说:

StringDictionary myStringDictionary = this.Context.Parameters;

并使用字典上的键MyButton来获取值。这应该让你接近。