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

时间:2008-08-21 18:35:04

标签: winforms deployment clickonce

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

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

创建部署的首要选择是Visual Studio。但是,VS确实没有解决所述问题。下一个是SDK工具,Mage。 Mage工作正常,但创建部署相当繁琐,我们不希望每个开发人员都拥有我们的代码签名证书和密码。

我们最终做的是滚动我们自己的部署应用程序,该应用程序使用Mage的命令行版本来创建ClickOnce清单文件。

我对我们目前的解决方案感到满意,但似乎会有一个行业范围内可接受的方法解决这个问题。有吗?

2 个答案:

答案 0 :(得分:14)

我会考虑使用msbuild。它内置了tasks来处理clickonce部署。如果你想沿着这条道路前进,我提供了一些可以帮助你入门的参考资料。这是我使用的,我发现它符合我的需要。通过使用msbuild的良好构建过程,您应该能够完成压缩您感受到的痛苦。

以下是关于ClickOnce清单生成如何与MsBuild一起使用的detailed post

答案 1 :(得分:5)

我已经使用nAnt来运行整体构建策略,但是将参数传递到MSBuild以编译和创建部署包。

基本上,nAnt为您需要部署的每个环境调用MSBuild,并为每个环境生成单独的部署输出。您最终得到了每个环境所需的文件夹和所有ClickOnce文件,您可以将其复制到服务器。

这也是我们处理多个生产环境的方式 - 我们在美国,加拿大和欧洲都有单独的应用程序实例,因此每个构建最终会创建9个部署,每个部署为dev,qa和prod