【发布时间】:2021-01-21 10:07:45
【问题描述】:
我们在 Azure DevOps Server 2020.1(本地)上使用我们的私有工件源。我收到了一个提要 MyFeed 和一个提要 MyFeedTest. 我使用 MyFeedTest 来暂存我们的 NuGet 包。当它们稳定时,它们会被推送到 MyFeed。如果提要中的 NuGet 包依赖提要中的另一个 NuGet 包,我使用以下行:
<PackageReference Include="ext.lib.MyPackage" Version="*" />
这里的问题是 Azure DevOps 服务器自己确定依赖关系,它从 MyFeedTest 中的暂存包中获取版本,用于 MyFeed 中的包,即使包 MyFeedTest 被取消列出,即使当整个提要MyFeedTest 被删除。
Azure DevOps 工件不应自行确定与另一个包的依赖关系,也不应忽略包项目文件 (Version="*") 中定义的依赖关系设置。
最后,我的同事在 Visual Studio 中得到以下错误:
Azure DevOps 服务器上的包ext.lib.MyPackage 的依赖关系如下:
但要记住,版本13.1.5.3 中的包ext.lib.DevExpress 在删除整个提要MyTestFeed. 后不存在
那我该如何解决呢?是否可以将 Azure DevOps 服务器配置为不这样做?我们不能通过该机制使用暂存。
【问题讨论】:
-
包的依赖关系由包的引用决定。 Azure Artifacts 不会自动添加或删除依赖项。如果您不再需要 ext.lib.DevExpress 作为依赖项,则需要在 ext.lib.MyPackage 中删除此包引用并重新发布。
-
@WalterQian-MSFT 感谢您的回复。我们从未定义对版本
13.1.5.3的依赖。我们定义了Include="ext.lib.DevExpress" Version="*",这就是我们想要的。 Azure Artifacts 自行将ext.lib.DevExpress (≥ 13.1.5.3)包的依赖项设置为ext.lib.DevExpress (≥ 13.1.5.3),这是我们不想要的。即使在删除ext.lib.DevExpress 14.1.5.3所在的提要之后,Azure Artifacts 仍会保留对ext.lib.DevExpress (≥ 13.1.5.3)的错误依赖,这是我们真正不想要的。工件将*转换为显式版本,这是不正确的,应该修复。
标签: azure-devops