在我的开发团队过去,我们主要针对现有应用程序进行瀑布式开发,部署只是在发布结束时才真正完成,通常会导致TEST,UAT,PROD版本通常只包含三到五个版本在两个月的周期内。
版本是MSI安装程序,通过组策略部署。
我们现在已采用更灵活的方法,每天至少需要发布一次以进行测试,有时更频繁。
该应用程序是一个VB6应用程序,MSI正在为我们处理COM注册,用户在他们的计算机上没有提升权限。
有没有人有更好的快速部署解决方案?
我们已经考虑过MSI的批量/脚本安装,或者每个文件进行COM注册,使用CPAU来提升权限,以及ClickOnce。这些都没有经过测试。
编辑:感谢您的建议。 为了澄清,我的痛点是MSI构建/部署过程需要很长时间,最多可能需要两个小时才能将新版本构建到测试人员桌面上。测试人员在他们的机器上没有管理员权限(并且不会获得他们),所以我正在寻找更好的解决方案。
我玩过ClickOnce,使用点网络包装器启动应用程序并将所有OCX / DLL vb6程序集作为独立的依赖项,但是在启动时找到所有程序集时遇到问题,或者发送消息那种效果。
答案 0 :(得分:7)
对于具有灵活输出的构建,CruiseControl和Nant可能是您最好的选择。但快速部署?
我担心的是你正在以错误的方式看待每日构建。日报不需要广泛部署。事实上,质量保证和开发是唯一应该关注日常构建的人。那么,开发者不应该不同步;)。
客户团队只应在迭代结束时接收构建。在那里,您向他们展示您所做的事情并提供反馈,然后您从那里继续前进。给他们每日构建可能会导致恶性鞭打,从而扼杀你的速度。
总而言之,一个好的部署包可能对QA有利。但同样,这取决于它们与您的开发迭代的步骤。我的经验,无论是对还是错,QA是一次迭代,重新测试上一次迭代的可交付成果。从这个角度来看,他们也应该测试最后一次“稳定”发布。
答案 1 :(得分:5)
这是您可以在虚拟机中执行的操作吗?您可以安全地为测试人员提供虚拟化系统的管理权限,并且大多数虚拟化软件都有某种形式的版本控制,因此如果出现问题,您可以回滚到“良好”状态。我发现它对测试非常有用。
答案 2 :(得分:1)
我建议使用ClickOnce选项来执行更新。这样,只有使用该软件的人才能接收并安装更新。
答案 3 :(得分:1)
您可以尝试免注册COM。见this other question。 ActiveX EXE仍然必须注册。
编辑:澄清一下,使用无注册表的COM意味着您提到的OCX / DLL组件不需要注册。他们也没有使用任何OCX / DLL组件。您只需将整个应用程序目录复制到测试人员的计算机上即可直接使用。
答案 4 :(得分:1)
如果我正确理解您的问题,您需要管理员权限才能安装您的产品。我看到三个选项:
1)不要安装到测试仪的桌面上。获取一些临时测试机器(如dmo建议,VMWare可能有所帮助),您可以安全地授予它们管理员权限。这可能意味着为他们提供测试域和他们自己的组策略进行编辑。
2)构建一个不需要安装MSI的变体,可以直接执行。显然,您的测试人员不会使用此变体测试部署和安装过程,但他们可以执行产品功能的其他测试。我不知道你的产品是否可行;它肯定会起作用。
3)采取敏捷药物:“[更喜欢]回应改变计划”。也就是说,如果拒绝您的测试人员的管理员权限干扰他们有效地完成工作的能力,那么就要向组织提出挑战,要求他们授予管理员权限。 (根据经验,这意味着转移到#1,但这可能是制作案例的最佳方式)。如果他们需要测试产品,他们甚至不能以与客户相同的方式安装产品?
答案 5 :(得分:1)
如果MSI部署的速度超出了敏捷测试的速度,那么您应该不那么经常地测试MSI部署。
尽可能使用XCOPY部署,使用.local进行COM组件。这可能是第三方组件的问题。由于第三方组件非常稳定,您应该能够为这些组件构建自定义MSI,安装一次并完成它们。
答案 6 :(得分:0)
您应该尝试手动运行的自动构建/部署过程或脚本。试试Teamcity或CruiseControl。祝你好运!
答案 7 :(得分:0)
我不确定你的痛点究竟是什么。
如果是前者,那么我怀疑问题是VB6很可能在重建解决方案时与GUID一起玩水果篮。尝试在MIDL中重新创建公共接口,并让VB6类实现这些接口。
如果是后者,请尝试使用Microsoft的SMS产品。不,它与手机无关。如果所有用户都不在同一个域中,那么您必须在产品中构建“自动更新”功能。这是我听说但从未使用的third party offering。
答案 8 :(得分:0)
我正在使用 SetupBuilder (http://setupbuilder.com/products_setupbuilder_pro.htm)进行所有构建。非常可扩展。优秀的支持。
不确定它是否符合您的需求,但论坛上的这类帖子“在XP上安装为有限帐户用户(非管理员)”(http://www.lindersoft.com/forums/showthread.php?t=11891&highlight=admin+rights),让我觉得它可能是