1

我有一个当前问题,我的 clickonce 应用程序的更新弄乱了连接字符串。这主要发生在我对备份盒进行更新然后第一次在生产盒上运行它时(在备份盒测试之后)。我的 clickonce 应用程序看到从备份服务器托管的更新并将其拉下,在此过程中覆盖了良好的 IP。

对用户来说,一切仍在工作,但实际上他们正在查看测试数据库。

我正在阅读,看来如果我将连接字符串移动到“用户”设置,我可以让它保持现有值。这仅在我现有的值显然是非默认值时才有效。

因此,为了保留现有的用户连接字符串,我需要设置一个我无法在客户端计算机上使用的项目设置默认值,从而强制我在最初部署应用程序后对其进行修改?

通过这样做,我会通过更新过程的检查并保留我的用户配置值吗?

4

1 回答 1

1

我认为您可以通过在用户应用程序数据文件夹中的配置文件中设置连接字符串来解决此问题。当应用程序启动时,检查资源是否存在。如果没有,请使用默认值创建它,然后通过您的应用程序设置更改。应用更改后,将其保存到资源中,每次用户启动他的应用程序时,它应该加载相同的资源。

要获取可安全单击一次的特定于用户的应用程序数据文件夹,请获取以下文件夹路径以保存配置资源文件。

string appDataPath = 
    Path.Combine(
        Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData,
        "[Company or App Name]"));

这将为您提供一条可用于在最终用户机器上读取和写入数据的路径。此文件夹中的数据不会被每个部署覆盖,并且文件夹位置也不会像应用程序的部署文件夹那样被混淆。

如果这不能回答您的问题,请在评论中提出更多问题。我将更新此答案以反映您的需求的性质。

于 2012-05-08T17:42:21.033 回答