项目中包含 app.config配置文件,在 应用程序列表那里不能选“排除”,直接在文件里删除 ,会显示“无法启动程序,缺少必要组件”,可以如果更新配置文件。用户的配置每次都要重新设置不知道各位碰上过吗

解决方案 »

  1.   

    用过clickonce,但是貌似没碰到过楼主的情况
      

  2.   

    可以是可以不过操作很复杂
    大概可以这样
    1.正常发布
    2.发布后修改.exe.manifest(程序清单),用文本文档打开删掉config文件那段
    3.使用mage重新签名.exe.manifest
    4.使用mage重新签名.application(一定要重新指定程序清单)
    5.使用mage重新签名publish.htm同级目录下的 .application(一定要重新指定程序清单)这样应该就好用了。其实你既然使用clickonce发布非熟悉clickonce的程序员用户基本找不到你那config文件
    config是系统必备文件似乎只能通过自定义清单来决绝了 
      

  3.   

    客户配置不要用 app.config 保存。用别的xml文件保存在 ApplicationData 目录下。即更新目录以外的地方。程序目录下所有文件,每次重新发布都在隔离的一个版本目录里。所以每次都是最新的。
      

  4.   

    "用别的xml文件保存在 ApplicationData 目录下:"
    你可以理解为:保存在程序运行目录以外的任何目录。比如:
       C:\Documents and Settings\[User]\Application Data这个通过 Environment.SpecialFolder.ApplicationData 就可以获得。
    一开始判断有没有,有就读,没有就创建一个初始的。
    XML读写不用我细说了吧。
      
      

  5.   

    请问楼上的,怎么指定clickonce的发布目录
    也就是说如何使用clickonce实现你所说的保存在C:\Documents and Settings\[User]\Application Data下我一直在寻求这个解决方案
      

  6.   

    clickonce发布目录你控制不了。但是获得系统目录还是简单的:Environment.SpecialFolder.ApplicationData 
      

  7.   


    谢谢cancerser 和  fangxinggood 的回答可以是可以不过操作很复杂
    大概可以这样
    1.正常发布
    2.发布后修改.exe.manifest(程序清单),用文本文档打开删掉config文件那段
    3.使用mage重新签名.exe.manifest
    4.使用mage重新签名.application(一定要重新指定程序清单)
    5.使用mage重新签名publish.htm同级目录下的 .application(一定要重新指定程序清单)
    ————————————————————
    使用mage重新签名? 这个是什么工具呢
    "用别的xml文件保存在 ApplicationData 目录下:"
    你可以理解为:保存在程序运行目录以外的任何目录。比如:
      C:\Documents and Settings\[User]\Application Data这个通过 Environment.SpecialFolder.ApplicationData 就可以获得。
    一开始判断有没有,有就读,没有就创建一个初始的。
    XML读写不用我细说了吧。
    ————————————————————
    是个思路,我试试。谢谢你
      

  8.   

    可以是可以不过操作很复杂
    大概可以这样
    1.正常发布
    2.发布后修改.exe.manifest(程序清单),用文本文档打开删掉config文件那段
    3.使用mage重新签名.exe.manifest
    4.使用mage重新签名.application(一定要重新指定程序清单)
    5.使用mage重新签名publish.htm同级目录下的 .application(一定要重新指定程序清单)
    ————————————————————
    使用mage重新签名? 这个是什么工具呢
      

  9.   

    通常,你应该点选“automatically increment revision with each publish”选项。如果不选,你需要手动设置一个更高的版本号。如果不升高版本号,那么用户端就无法正确地更新安装。经常会出现“明明已经卸载了,还是无法安装新版本”的问题。
      

  10.   

    谢谢 sp1234的回答
    而不是在原来的目录中覆盖
    ---------------
    谢谢你的回答。现在需求是 这样。软件刚到用户那里会先让用户输入一个IP地址, 然后保存到 app.config配置文件 ,但每次用ClickOnce更新后,还需要用户在写一次。这个很麻烦。不知道有什么解决办法。