我们有一个合理的规模应用程序,针对Y版本的Z区域为N个客户推出。对于每种情况,每个clickonce URL对应的WCF服务URL都是不同的。
在需要部署/更新之前,我们不知道这些是什么。目前这是一个非常手动的过程:
构建解决方案, 更新程序集版本 更新clickonce客户端配置以获得正确的URL 重新签名点击一次应用 设置服务(网址,配置等) 部署
我们正在尝试自动执行此过程,并在此过程中释放大量时间和错误。我们的方法已经在每个提交builda通用版本和存档上,作为工件版本号(我们自动增加客户端版本号并在该版本号下存储整个应用程序,客户端,服务器,数据库脚本等)。这意味着该公司可以说我们拥有UAT版本X并且很高兴它能够上线。
我一直在创建自动化工具来存档,配置转换等,然后重新签名客户端应用程序。然后我们意识到点击一次会创建一个setup.exe,其中包含需要更新的资源,例如名称将更改,网址会更改。
我正在尝试找到一种方法来获取此setup.exe并以自动/命令行/ C#方式更改资源字符串。
我试过ildasm但它不会打开它说“错误:setup.exe没有有效的CLR标题,不能被反汇编”
任何编辑此资源的方式或确保我们可以构建应用程序的通用版本,然后根据每个新要求自定义它将会很棒。
答案 0 :(得分:1)
我认为你问题的最佳答案是采取不同的方法。您无法在Visual Studio生成的setup.exe文件中访问这些资源详细信息(我知道)。但是,ClickOnce还有一个.Net API,您可以在自己想要控制更新和安装过程时将其集成到应用程序中。
查看有关创建自定义安装程序项目的MSDN article here。
答案 1 :(得分:0)
找到了一种更新baseurl和其他几个位的方法:
http://msdn.microsoft.com/en-us/library/8st7th1x(v=vs.90).aspx
似乎它知道如何自我更新。从我最初的测试开始,这似乎很有效,我会尽快测试它。