VSTS包裹馈送不从上游源(nuget.org)提取包裹

时间:2018-02-12 21:45:10

标签: visual-studio visual-studio-2017 nuget azure-devops nuget-package

我已经为我们的开发团队在VSTS上设置了一个新的团队项目,并使用Package-Management扩展来发布我们的NuGet包。 我还启用了公共nuget.org Feed作为内部包Feed的上游源。

根据建议here& here我取消选中nuget.org作为Visual Studio中的包源 现在我希望搜索首先找到发布到此Feed的包 如果没有,那么从上游获取它。 但事实并非如此,我无法从nuget.org添加软件包 除非我在Visual Studio中启用nuget.org作为包源。

一旦我将包发布到我的Feed,nuget.org(通过启用nuget.org添加)的包开始出现在我的私人订阅源中。(即使我取消选中nuget.org来源) 但我无法直接从上游使用新的软件包,而无需将nuget.org作为源。

我是否误解了这应该是构建机器配置而不是开发人员机器配置?

3 个答案:

答案 0 :(得分:1)

您错过了documentation

中的这一部分
  

如果您正在使用上游源,则在上游使用package-versions   尚未保存到您的Feed中的来源(通过使用它们   至少一次)不会出现在NuGet Package Manager搜索中。至   安装这些包:

     
      
  1. 在上游源(例如nuget.org)上,复制Install-Package   命令。
  2.   
  3. 在Visual Studio中,从“工具”中打开“程序包管理器控制台” - > NuGet包管理器。
  4.   
  5. 将Install-Package命令粘贴到程序包管理器控制台并运行它。
  6.   

答案 1 :(得分:0)

如您所见,您还应该选择nuget.org包源(两者都选择VSTS feed和nuget.org作为包源)。

enter image description here

如果您在VS中取消选择nuget.org包源,则表示nuget.org中的包将无法使用。

为了首先从VSTS Feed搜索包,然后在nuget.org中搜索,您可以通过过滤来自不同包源的包来实现:

  • 首先从VSTS Feed中搜索一个包(例如NUnit包)(下面的例子,这个名称是新的):

    将Package source指定为新的,如果在浏览列表中显示相关的包,则可以使用VSTS feed中的包。如果没有包列表,这意味着VSTS提要没有相关的包,那么你可以从nuget.org获取如下步骤。

    enter image description here

  • 要从nuget.org搜索软件包(NUnit),您只需将软件包源更改为nuget.org,然后VS将列出存储在https://api.nuget.org/v3/index.json中的相关软件包。

    enter image description here

答案 2 :(得分:0)

在 Visual Studio 中(我使用的是 VS 2019),来自上游的包的更新版本应自动出现在下拉列表中,以下情况除外:

如果 PackageA 依赖于 PacakageB,但未明确安装 PackageB(即您没有在项目的 Manage NuGet Packages 页面中明确添加它),则 {{ 1}} 将冻结在隐式安装的最后一个版本。

示例:

  1. 在您的 PackageB 页面上,您安装了 Manage NuGet Packages 5.0.0 版。这会导致您的应用隐式依赖于 System.Text.Json 5.0.0。

  2. 一段时间后,您将 System.Text.Encodings.Web 升级到 5.0.1 版。 System.Text.Json 还有一个新的 5.0.1 版本,但由于 System.Text.Encodings.Web 5.0.1 依赖于 System.Text.Json >= 5.0.0,因此您的提要中已有的版本满足隐式依赖关系。您的 Feed 将保留 5.0.0 版本。

  3. 稍后您需要更新到 System.Text.Encodings.Web 5.0.1 版。您在 NuGet 包页面上搜索 System.Text.Encodings.Web,但请注意版本 5.0.0 是唯一可用的版本!

  4. 解决方案

    4.1.在 5.0.0 版上单击安装。这将使包成为显式依赖项。

    4.2.现在,在更新选项卡上,您将看到 5.0.1 作为更新选项出现。