Installation 如何在安装打包时管理稳定的二进制文件并避免CI重建的风险?
我正在寻找一个工具来管理二进制文件(输入组件)的集合,组成一个软件版本。这是一款软件产品,在过去20年中,我们每年都发布多个版本。文件的细节和类型可能会有所不同,但这是许多软件团队需要管理的 软件版本是由什么组成的? 我们的软件版本中包含多种文件,包括:Installation 如何在安装打包时管理稳定的二进制文件并避免CI重建的风险?,installation,artifactory,nexus,packaging,proget,Installation,Artifactory,Nexus,Packaging,Proget,我正在寻找一个工具来管理二进制文件(输入组件)的集合,组成一个软件版本。这是一款软件产品,在过去20年中,我们每年都发布多个版本。文件的细节和类型可能会有所不同,但这是许多软件团队需要管理的 软件版本是由什么组成的? 我们的软件版本中包含多种文件,包括: Windows可执行文件/二进制文件(40个DLL和30多个EXE文件) 安装程序用于创建数据库的脚本 各种平台(.NET、ActiveX和Java)的API程序集 文档文件(HTML、PDF、CHM) 示例应用程序的源代码 该版本的单个版
- Windows可执行文件/二进制文件(40个DLL和30多个EXE文件)
- 安装程序用于创建数据库的脚本
- 各种平台(.NET、ActiveX和Java)的API程序集
- 文档文件(HTML、PDF、CHM)
- 示例应用程序的源代码
- CI将发布每个二进制文件的新版本(但拒绝已存在的重建版本)
- 开发团队需要为软件发布(有点像NuGet packages.config)制定一个配方,其中指定要包括的组件:
- 包名
- 版本
- 发布文件夹中的路径/目标
- 使用配方的自动软件包脚本收集所需文件,并编译安装软件包(例如SETUP.EXE)
如果您正在使用工件存储库来解决此问题,您如何管理和自动化此过程?这是一个非常广泛的主题,但听起来您需要一个发布管理工具(例如,由我的公司Inedo开发),可能与ProGet这样的包管理服务器结合使用(你标记了它,这就是我发现这个问题的方式) 为了解决您的一些具体问题,我将把它与解决问题的功能联系起来: 我们的软件版本中包含多种文件,包括 这在BuildMaster中通过工件进行处理。本视频提供了如何手动将工件添加到发行版并部署到文件系统的基本概述: 当然,一旦达到满意的效果,您可以自动从现有CI工具导入工件,从BuildMaster部署计划本身创建工件,从包服务器中提取工件,等等。接下来,您还可以让您的CI工具调用BuildMaster发布管理API来创建一个发布,并自动它包括您想要的所有工件和组件(这是我们大多数客户现在所做的,即在TeamCity中有一个构建步骤) 正在重建程序集…输出是我们之前测试过的二进制文件的新版本(提示:我们应该始终相信它们是等效的吗?) 大多数情况下,您可以假设它们在功能上是等效的,但只有当它们不等效时,问题才会出现。对于不将依赖项锁定到特定版本号(即NuGet、npm)的包管理器来说,这一点尤其正确。您应该发布与以前环境中测试的完全相同的二进制文件 [我们希望]开发团队为软件发布(有点像NuGet packages.config)制定一个配方,指定要包括的组件: 这是用.A devel处理的