【问题标题】:Do not overwrite the app.config when deploying with clickonce使用 clickonce 部署时不要覆盖 app.config
【发布时间】:2010-10-05 20:27:41
【问题描述】:

如何指定我的应用在通过单击更新应用时不覆盖客户端计算机上的 app.config?

【问题讨论】:

  • 我很困惑...部署应用程序后,客户端会在他们的机器上编辑配置文件吗?如果没有,你怎么会得到“客户......使用不同的连接字符串”?
  • 是的,其中一些编辑 app.config

标签: .net deployment configuration clickonce configuration-files


【解决方案1】:

如果我没记错的话,你需要这样的东西

Persisting app.config variables in updates via Click once deployment

【讨论】:

    【解决方案2】:

    背景
    我在问题的 cmets 中询问用户是否在部署后在他们的机器上手动编辑 app.config 文件。原发帖人回应说他们正在这样做。

    回答
    看起来发布者希望 ClickOnce 最初部署 app.config 文件,然后将其部署到应用程序的未来更新中。这是对 ClickOnce 的严重误用。我不认为有一个简单的方法可以做到这一点,即使有我也会建议不要这样做。如果将来您想在 app.config 文件中添加新设置怎么办?如果 app.config 不再在他们的机器上更新,用户将如何获得新设置?

    我会做的是将连接字符串存储为 UserSettings。这正是用户设置的目的,因用户而异。最重要的是,我可能会为他们提供一个简单的表单来编辑这些设置。让我的所有用户胡乱摆弄他们的安装文件会让我感到紧张。

    【讨论】:

    • 如果 Microsoft.Practices 库“神奇地”监视您的 connectionsStrings 部分,这将无济于事...
    【解决方案3】:

    将您的设置移动到您部署到的每个环境的不同配置,例如:

    app.development.config
    app.staging.config
    app.production.config

    将所有设置通用保留在您的 app.config 中

    【讨论】:

      【解决方案4】:

      您是否尝试在更新期间保留设置?如果是这样,请查看应用程序和用户设置(在项目的属性中)。它们不会在每次更新期间被覆盖。

      【讨论】:

      • 不是属性设置、app.config、连接字符串、ioc 配置等...
      • 你不想在客户端更新那种配置
      • 否,因为例如:我网络中的客户端有时使用不同的连接字符串,然后每次我部署应用程序时它都会重置 app.config
      • 在我现在工作的客户端系统中,用户配置我保存在用户设置中的数据源和其他变量。使用用户设置,用户的配置不会因每次单击部署而丢失。这是一篇文章。 codeproject.com/KB/vb/appsettings2005.aspx
      猜你喜欢
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多