我有一个当前的问题,我的clickonce应用程序的更新搞乱了连接字符串。这主要发生在我更新备份盒然后第一次在生产盒上运行它(在备份盒测试之后)。我的clickonce应用程序看到从备份服务器托管的更新并将其拉下来,在此过程中覆盖好的IP。
对于用户来说,一切仍然有效,但实际上他们正在查看测试数据库。
我正在阅读,看来如果我将连接字符串移动到“用户”设置,我可以让它保持现有值。这只有在我的现有值显然是非默认值时才有效。
那么,为了保留现有的用户连接字符串,我需要设置一个我无法在客户端计算机上使用的项目设置默认值,迫使我在最初部署应用程序后修改它?
通过这样做,我会通过更新过程的检查并保持我的用户配置值吗?
答案 0 :(得分:1)
我认为您可以通过在用户应用程序数据文件夹中的配置文件中设置连接字符串来解决此问题。应用程序启动时,请检查资源是否存在。如果没有,请使用默认值创建它,然后在应用程序中设置更改。应用更改后,将其保存到资源,每次用户启动其应用程序时,都应加载相同的资源。
要获取一次安全的特定于用户的应用程序数据文件夹,请获取以下文件夹路径以将配置资源文件保存到。
string appDataPath =
Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData,
"[Company or App Name]"));
这将为您提供一条路径,您可以使用该路径在最终用户计算机上读取和写入数据。此文件夹中的数据不会覆盖每个部署,并且文件夹位置也不会像应用程序的部署文件夹那样进行模糊处理。
如果这不能回答您的问题,请在评论中提出更多问题。我会更新这个答案,以反映您的需求性质。