一个WinForm程序,通过Web服务获取数据,Web服务地址及一些配置信息写在一个XML文件中,下载下来后通过动态为Web服务URL赋值去获取数据。这样做没问题,但用户要求可以自己修改这个配置文件,这样可以布署到多个地方,适用不同单位,但VS发布的程序,直接修改之后无法签名,程序检测会报错,请问诸位达人该如何解决这个问题,我能否自己写个小程序去做签名?该如何实现,或者还有没有其它的办法,多谢指点。

解决方案 »

  1.   

    首先签名在.net自带的SDK中有一个tool,signtool.exe
    位置在安装路径:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
    一个很小的签名程序,可以通过命令行进行签名。。其次要说的是你这种方法不是很好。
    我觉得C/S的程序再加上ClickOnce部署,客户端的配置是需要放在服务器上的,这样当版本更新的时候就不会覆盖以前的配置了,在新版本启动时读数据库的配置然后再放在客户端。
      

  2.   

    我的程序是可能有多个地点布署,读的数据库或者Web服务也不尽相同,用的单位也不一样,配置文件是放在服务器上,但用户要求可以自己将程序拷贝去发布,能自己修改配置文件,才会出现这样的要求.
    楼上二位仁兄有现成的代码没有?如果有相关的发给我参考一下吧[email protected]或者[email protected]非常感谢.
      

  3.   

    ClickOnce编译的exe文件是不能够在另外的站点里发布的。
    要想解决可以有两个方案:
    1. 给每个用户编译个版本(前提是用户不能太多)
    2. 自己手动做更新功能(但是失去了ClickOnce的一个很大的便利)http://download.microsoft.com/download/8/1/d/81d789e2-0cbb-421e-b4f9-b40aabadd201/CS101SamplesData.msi
    这里面有.Net 2.0的一些sample,里面有一个UsingClickOnce的工程,你可以修改一下应该就可以达到要求了。
      

  4.   

    大头兄弟,我下了你的例子,没找到什么UsingClickOnce的专门工程啊?
      

  5.   

    不是吧
    默认安装后在
    C:\Program Files\MSDN\101 Samples\C#\Windows Forms\UsingClickOnce
      

  6.   

    帮LZ顶啊~~~~
      
    http://user.qzone.qq.com/31767702