ClickOnce应用程序的不同app.config

时间:2010-01-13 13:30:43

标签: .net configuration clickonce

我们在两个不同的地方部署了ClickOnce部署的应用程序。 两者都需要app.config中的一些不同设置(另外还有devel环境)

现在生成这些安装的过程是让某人从visual studio手动更改这些设置并重建。这当然是一种痛苦。

有些人建议我们在我们的解决方案中另外创建一个项目,该项目几乎只包含app.settings,只需在另一个项目中运行主窗体。

人们如何处理这个问题?

(我正在寻找具体的解决方案/示例,“使用自动构建系统”可能是目标,但它不是非常具体......)

3 个答案:

答案 0 :(得分:0)

我会将这些设置移出app.config。我们在ClickOnce更新期间维护配置设置值时遇到了很多问题,我不再相信它了。我会将这些设置移动到轻量级数据库中,例如SqlLite或SqlCe,并将其与您的应用程序一起分发。然后维护设置只是在数据库中填充不同的值。

答案 1 :(得分:0)

我认为有两种解决方案:

  • 正如你所说,创建一个多项目。该项目基本上代表了正确的app.config,正确的deploment-configuration等。否则它只是将代码流委托给'real'-project。
  • 另一种可能是创建多个app.config文件。就像app-develop.config =>开发版本,app-productive.config => Productive-Version,app-other-thing.config ...现在你要向MSBuild文件(.csproj)添加一个额外的任务,它将正确的应用程序 - * .config复制到app.config文件。我们使用我们的日志配置执行类似的操作,它可以正常工作。

答案 2 :(得分:0)

我对此blogged about our solution有效。

基本上我们有一个单独的文件,其中包含每个环境的所有配置信息(即不同的部署位置),构建过程使用此信息在配置文件/本地数据库中设置值。

该解决方案不会干扰开发人员的日常活动,并且可以使用ClickOnce部署(即在清单签名之前更新配置文件)。

让我知道您对解决方案的看法......好的或坏的: - )