none
ClickOnce更新后用户配置的内容不见 RRS feed

  • 问题

  • 使用ClickOnce部署,其中有个提供用户配置的文件。当我使用ClickOnce自动更新时,发现更新后用户配置的内容不见了。

    查找了一下原因,发现每次自动更新时会生成一个新的文件夹(相当于废弃之前的程序,在新的文件夹下生成新的程序)

    之前用户配置的文件在第一次安装的文件夹下面的程序,而更新后就使用了新的文件夹下的程序。那么这样就导致用户配置的内容没有了。这个该如何解决?有什么好的方案么?

    2018年2月27日 9:54

全部回复

  • Hi,

    欢迎在MSDN论坛发帖。

    经过我这边的测试,如果你在使用config文件的时候,没有勾选下面的选项,程序不会拷贝config文件到bin目录下面,一起发布出去,这样就会出现找不到config文件的问题。

    Best Regards,

    Hart


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年2月28日 8:08
    版主
  • 您好,感谢您的回复。

    因为发不了图片,文字没有表达清楚。

    是这样的,winfrom程序发布后会产生个exe可执行文件。点击可执行文件进行安装后,它会默认安装在C:\Users\Administrator\AppData\Local\Apps\...目录下:比如我这边是:C:\Users\Administrator\AppData\Local\Apps\2.0\1XDBEGEY.M92\NV6VD9KK.D8O\.app..tion_0000000000000000_0001.0000_d55a2ea75d928e7c

    如果在发布一下,在打开程序进行升级后,神奇的发现升级后的程序是在

    C:\Users\Administrator\AppData\Local\Apps\2.0\1XDBEGEY.M92\NV6VD9KK.D8O\.app..tion_0000000000000000_0001.0000_d55a2ea85e119e3c

    目录下。

    注意:它不是在.app..tion_0000000000000000_0001.0000_d55a2ea75d928e7c文件基础上进行更新程序,而是把程序放在新建的文件夹.app..tion_0000000000000000_0001.0000_d55a2ea85e119e3c下。

    这会导致一个问题,就是在没升级前修改的信息是保留在原来.app..tion_0000000000000000_0001.0000_d55a2ea75d928e7c下的(比如config,xml文件),更新后执行的是在.app..tion_0000000000000000_0001.0000_d55a2ea85e119e3c下的程序,之前保留的信息是获取不到的。为了解决这个问题,我把信息保存在了C:\Users\Administrator下,不在保留在程序里了。这么处理不理想

    2018年2月28日 9:41
  • 数据放LocalApplicationData下面去


    Visual C++ MVP

    2018年3月1日 5:57
    版主