将 Nuget 包从本地 TFS2017 发布到 azure DevOps
Posted
技术标签:
【中文标题】将 Nuget 包从本地 TFS2017 发布到 azure DevOps【英文标题】:Publish Nuget package from on premise TFS2017 to azure DevOps 【发布时间】:2021-05-06 00:54:15 【问题描述】:我们正在为所有最新的 .NET 核心应用程序在云中试用 azure devops。 我们需要做的一件事是从我们的本地 TFS 2017 实例发布 nuget 包,直到 devops,以便新应用程序可以使用它们。 我在 DevOps 中创建了一个新的包,它给了我一个发布到的 URL。 但是当我尝试在构建中推送现有包时,使用包发布者步骤,我得到一个错误:
Response status code does not indicate success: 401 (Unauthorized).
这甚至可能吗?有人做过吗?
【问题讨论】:
您好,您是否查看了这篇文章,它看起来与您的相似:***.com/questions/37956817/… 所以我尝试在 VSTS 实例中使用“连接到提要”,但它不允许我选择新提要。或更改提要的详细信息。我还尝试在构建服务器上运行 nuget 命令:nuget.exe 源添加并且我可以使用 nuget.exe 在列表中查看提要。但一切都没有改变。仍然不会进行身份验证。 【参考方案1】:如果要将 NuGet 包从本地 TFS 2017 实例发布到 Azure DevOps 服务源,则需要对其进行升级,因为其中不提供以下 NuGet 服务连接。我们在 TFS 2019 中对其进行测试并找到此类型,然后按照以下步骤操作。
-
在 Azure DevOps 服务中创建一个NuGet feed,然后按照以下文档为该提要权限启用“允许项目范围的构建”选项:Package permissions in Azure Pipelines。
关注此文档:Use NuGet with Azure DevOps Services feeds,您将获得如下的提要 URL。
Create a PAT 在 Azure DevOps 服务中具有完全访问权限,然后在内部 TFS 项目中 create a NuGet service connection 如下所示。
请注意Feed URL 来自 Step2,Username 是您在 Azure DevOps 服务中的用户名,Password 是生成的 PAT。
按照此文档:Publish to NuGet feeds (YAML/Classic) 将 NUGet 包从本地 TFS 实例发布到 Azure DevOps 服务源。 NuGet push task 设置如下。
【讨论】:
所以我在第 3 部分遇到了麻烦。我不确定如何在 TFS2017 中创建 devops nuget 连接。如果我单击 Connect To Feed,它不会显示您在那里显示的相同窗口。它不允许我更改 URL,而只是指向我们在本地拥有的现有 nuget。我如何获得添加 Nuget 服务连接? 因此,如果我转到“服务”>“新服务端点”,我会得到一个可以添加的服务列表,而 nuget 不在列表中。我可以添加一个通用端点,如上输入详细信息。然后我在发布时在构建中收到此错误:此提供程序仅处理来自构建的团队项目集合的 URI 无法加载源 pkgs.dev.azure.com/myDevops/_packaging/devops/nuget/v3/… 的服务索引。响应状态码不表示成功:401(未授权)。 抱歉没有指出NuGet服务连接在TFS 2017中不可用,它可以在以后的Azure DevOps Server 2019及更高版本中可用。否则,您可以将 TFS 2017 中的存储库克隆到 Azure DevOps,然后创建相应的构建管道来构建它,然后直接将 NuGet 包发布到 Azure DevOps 源。 看起来它可能在 2017.3 中可用 - 查看发行说明。我们计划尝试升级,看看是否可行。 最新的 Azure DevOps Server 2020 已经发布,您可以关注这个文档:docs.microsoft.com/en-us/azure/devops/server/upgrade/… 升级到这个版本。以上是关于将 Nuget 包从本地 TFS2017 发布到 azure DevOps的主要内容,如果未能解决你的问题,请参考以下文章
从 CI 到生产 Nuget 源的 Nuget 包版本控制和推广
将 TFS2017.3 升级到 Azure DevOps 服务器
Visual Studio 2017 Enterprise + TFS 2018 + Git Clone = 无法获取本地颁发者证书