我们的团队开发分布式winform应用.我们使用ClickOnce进行部署,并对此非常满意.
但是,我们发现ClickOnce的痛点在于创建部署.我们有标准的开发/测试/生产环境,需要能够为每个安装和更新彼此独立的部署创建部署.此外,我们希望控制部署的程序集.仅仅因为编译程序集并不意味着我们希望它被部署.
创建部署的首要选择是Visual Studio.但是,VS确实没有解决所述问题.下一个是SDK工具,Mage.Mage工作正常,但创建部署相当繁琐,我们不希望每个开发人员都拥有我们的代码签名证书和密码.
我们最终做的是滚动我们自己的部署应用程序,该应用程序使用Mage的命令行版本来创建ClickOnce清单文件.
我对目前的解决方案感到满意,但似乎会有一个行业范围内可接受的方法解决这个问题.在那儿?
我会看看使用msbuild.它内置了处理clickonce部署的任务.如果你想沿着这条道路前进,我提供了一些可以帮助你入门的参考资料.这是我使用的,我发现它符合我的需要.通过使用msbuild的良好构建过程,您应该能够完成压缩您感受到的痛苦.
以下是有关ClickOnce清单生成如何与MsBuild一起使用的详细文章.
我已经使用nAnt来运行整体构建策略,但是将参数传递到MSBuild以编译和创建部署包.
基本上,nAnt为您需要部署的每个环境调用MSBuild,并为每个环境生成单独的部署输出.您最终得到了每个环境所需的文件夹和所有ClickOnce文件,您可以将其复制到服务器.
这就是我们处理多个生产环境的方式 - 我们在美国,加拿大和欧洲都有单独的应用程序实例,因此每个构建最终会创建9个部署,每个部署用于dev,qa和prod.