Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms Visual studio-使用参数作为输入的windows窗体应用程序的安装项目_Winforms_Installation_Key_Parameter Passing_Setup Project - Fatal编程技术网

Winforms Visual studio-使用参数作为输入的windows窗体应用程序的安装项目

Winforms Visual studio-使用参数作为输入的windows窗体应用程序的安装项目,winforms,installation,key,parameter-passing,setup-project,Winforms,Installation,Key,Parameter Passing,Setup Project,我创建了一个windows窗体应用程序(称为MyWinformsApp),每个安装都有一个位于App.config文件中的个性化数据。 我需要构建一个通用安装文件:因此个性化参数必须包含在安装项目中。 因此,我使用visual studio构建了一个安装项目(称为SetupProject,链接到MyWinformsApp),并添加了一个文本框字段作为我的个性化字段的输入。 我的问题是:如何从SetupProject获取文本框的值并使用它更新App.config(MyWinformsApp的)。

我创建了一个windows窗体应用程序(称为MyWinformsApp),每个安装都有一个位于App.config文件中的个性化数据。 我需要构建一个通用安装文件:因此个性化参数必须包含在安装项目中。 因此,我使用visual studio构建了一个安装项目(称为SetupProject,链接到MyWinformsApp),并添加了一个文本框字段作为我的个性化字段的输入。 我的问题是:如何从SetupProject获取文本框的值并使用它更新App.config(MyWinformsApp的)。
提前感谢。

我知道您可以这样做的唯一方法是向项目中添加一个类,这样您就可以拦截安装相关事件,如安装/提交/回滚等

例如,在Install event上,您可能会遇到如下情况:

public override void Install(IDictionary stateSaver)
{
    base.Install(stateSaver);
    string value = Context.Parameters["paramKey"];

    // Update App.config with the value
}
基本上,您需要找到App.config文件(如果它放在安装程序文件中或作为资源文件,您应该能够获得它)并在适当的位置进行更新


恐怕没有更简单的方法来完成这项工作,因为整个安装框架没有那么灵活。

事实上,自定义安装类应该添加到主项目下。 然后我们在安装项目中引用该类。
我们只需要像这样添加类:右键单击安装项目-->视图-->自定义操作-->选择我们的项目输出。

您可能会发现这些帖子很有用:或