创建ClickOnce部署的最佳方法是什么?

14

我们的团队开发分布式Winform应用程序。我们使用ClickOnce进行部署,并对其非常满意。

然而,我们发现ClickOnce的痛点在于创建部署过程中。我们有标准的开发/测试/生产环境,并需要能够为每个环境创建安装和更新操作,这些操作彼此独立。此外,我们希望控制哪些程序集要被部署。仅仅因为一个程序集已经被编译并不意味着我们想部署它。

显然,创建部署的首选选择是Visual Studio。然而,VS实际上并没有解决上面提到的问题。其次是SDK工具Mage。Mage工作得还不错,但创建部署比较繁琐,我们也不希望每个开发人员都拥有我们的代码签名证书和密码。

我们最终采取的解决方案是自己编写了一个部署应用程序,该程序使用命令行版本的Mage来创建ClickOnce清单文件。

我对我们目前的解决方案感到满意,但似乎会有一种行业广泛接受的方法来解决这个问题。是否存在这样的方法呢?

2个回答

14

我建议使用msbuild。它内置了任务以处理ClickOnce部署。如果你想走这条路线,我包含了一些参考资料,将帮助你入门。我自己使用它,并发现它符合我的需求。通过使用好的构建过程(使用msbuild),你应该能够解决你所感受到的问题。

这里是有关如何在MsBuild中生成ClickOnce清单的详细文章


嗨,Dale,你的链接已经失效了,你有这篇文章的标题吗? - TombMedia
很遗憾,我不会推荐使用ClickOnce。如果您正在开始一个新项目,即尚未使用ClickOnce,则可以考虑使用Squirrel。@TombMedia - Dale Ragan
我希望能够脱离这个遗留系统。无论如何,还是谢谢你。 - TombMedia

5
我使用nAnt运行整个构建策略,但将参数传递到MSBuild以进行编译和创建部署包。
基本上,nAnt调用MSBuild以部署每个环境,并为每个环境生成单独的部署输出。您最终会得到一个文件夹和所有ClickOnce文件,您可以将其复制到服务器上。
这也是我们处理多个生产环境的方式 - 我们为美国,加拿大和欧洲分别设置了应用程序的不同实例,因此每次构建都会创建九个部署,每个环境三个(开发,QA和生产)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接