Azure Artifacts 的关键概念
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
不可变性
将包的特定版本发布到源后,该版本号将永久保留。 不能上传具有相同版本号的较新的修订包,也不能将其删除,并上传具有相同版本号的新包。
许多包客户端(包括 NuGet 和 npm)在计算机上保留包的本地缓存。 客户端缓存特定包版本后,它将在将来的安装/还原请求中返回该副本。
如果在服务器端将包版本 v1 替换为新版本 v2,则客户端无法判断差异。 这可能会导致无法确定来自不同计算机的生成结果。 例如,开发人员的计算机和生成代理可能缓存了包的不同修订,从而导致意外生成结果。
如果包损坏、buggy 或共享意外内容(如机密),最佳方法是准备修补程序并将其发布为新版本。 然后,根据问题的严重性以及包的依赖程度,可以删除包,使其不可用。
解决不可变性约束的唯一方法是创建新的源并将所需的包版本发布到新源。
注意
已删除的源在回收站中保留 30 天,然后永久删除。 永久删除源后,源名称将变为可用。
索引
Azure Artifacts 维护每个源中所有包的索引,这可实现快速列表操作。 文件共享上的列表操作要求客户端打开每个包并检查其元数据,除非你的文件共享已配置为提供客户端理解的索引。
格式良好
Azure Artifacts 验证所有已发布的包,以确保它们格式良好。 这可以防止无效的包进入开发和生成环境。 但是,迁移到 Azure Artifacts 时,发布格式不正确的包的任何工作流都会中断。
回收站
可以手动删除包,也可以设置源的保留策略。 已删除的包在回收站中保留 30 天,然后永久删除。 源所有者可以从回收站恢复已删除的包。