Visual studio - 为 windows 表单应用程序设置项目,将参数作为输入

Visual studio - Setup project for windows form application with a parameter as input

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

我知道你能做到这一点的唯一方法是在你的项目中添加一个 Installer class 这样你就可以拦截与安装相关的事件,比如 Install/Commit/Rollback/etc.

例如,在 Install 事件中,你会有这样的东西:

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

    // Update App.config with the value
}

基本上,您需要找到 App.config 文件(如果它位于安装程序文件中或作为资源文件,您应该能够获取它)并就地更新它。

恐怕没有更简单的方法来做到这一点,主要是因为整个设置框架没有那么灵活。

事实上自定义安装class应该添加到主项目下。 然后我们在安装项目中引用 class。 只是我们需要像这样添加 class :右键单击设置项目-->查看 --> 自定义操作 --> Select 我们的项目输出。