Azure devops azure devops&;公共nuget在构建时的上游行为

Azure devops azure devops&;公共nuget在构建时的上游行为,azure-devops,nuget,nuget-package-restore,Azure Devops,Nuget,Nuget Package Restore,我试图通过使用。因此,我设置了一个Nuget.config文件,其中有一个条目到我的提要中,并带有文档中所述的标记 在devops服务器端,我已经为公共Nuget Gallery设置了一个上游源的提要(以便缓存,因为在公共包管理器中断的情况下这听起来很不错) 当我在任何机器上直接使用nuget.exe客户端时,我可以在任何情况下安装任何nuget.org包。但是在构建时,当公共包不在我的服务的上游缓存中时,构建代理将找不到它…(在这种情况下,似乎没有使用上游来为缓存提供数据) 这正常吗?是否仅限

我试图通过使用。因此,我设置了一个Nuget.config文件,其中有一个条目到我的提要中,并带有文档中所述的
标记

在devops服务器端,我已经为公共Nuget Gallery设置了一个上游源的提要(以便缓存,因为在公共包管理器中断的情况下这听起来很不错)

当我在任何机器上直接使用
nuget.exe
客户端时,我可以在任何情况下安装任何nuget.org包。但是在构建时,当公共包不在我的服务的上游缓存中时,构建代理将找不到它…(在这种情况下,似乎没有使用上游来为缓存提供数据)

这正常吗?是否仅限于生成时已缓存的包

在我们的开发团队中,我们习惯于通过VS UI(右键单击项目“管理nuget软件包”)添加nuget软件包。在这种模式下,我们看不到那些上游软件包,因此我们在开发时直接将源代码切换到nuget

我找到的解决方案可以是:

  • 将第二个条目添加到
    Nuget.config
    以声明Nuget.org用于构建(但我们失去了缓存功能)
  • 要在开发时系统地使用命令行
    nuget.exe
    安装软件包
我错过了什么?你还有其他想法/解决方案吗

编辑:似乎由于以下错误而失败:

顺便说一句:我对Azure Devops(使用内部版本“Dev18.M170.6”)相当陌生

这正常吗?是否仅限于生成时已缓存的包

这是不正常的。它不限于构建时缓存的包

例如,我使用公共Nuget Gallery的enable Upstream source创建了一个新的测试提要:

现在只缓存了我以前测试过的几个包,然后我添加了另一个测试包
log4net
,并使用下面的
nuget.config
还原它:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="NewFeed" value="https://pkgs.dev.azure.com/<MyOrgName>/_packaging/NewFeed/nuget/v3/index.json" />
  </packageSources>
  
  <config>

</config>

  <packageSourceCredentials>
    <NewFeed>
      <add key="Username" value="XXX" />
      <add key="ClearTextPassword" value="XXX" />
    </NewFeed>
  </packageSourceCredentials>

</configuration>

提要结果:

因此,它不限于构建时缓存的包。此方法对您无效的原因需要对nuget restore任务日志进行特定分析

作为提醒,请检查project Build Services是否具有访问您的源的权限:

提要设置
->
权限
->
..
->
允许项目范围的生成

在我们的开发团队中,我们习惯于通过 VS UI(右键单击项目“管理nuget软件包”)。在这种模式下,我们 无法看到那些上游包,因此我们将源代码切换到nuget 直接在开发时间

您可以在Visual Studio中将上游源nuget.org添加为nuget scource,您可以通过VS UI添加nuget软件包。当您在Azure devops中构建管道时,nuget将从自定义源还原软件包,并从上游源缓存软件包:


我不明白这个“允许项目范围的构建”的作用,但它解决了这个问题!!为什么缓存中的包一切正常,这个选项对此有什么改变?关于VS config/UI的使用,这已经是我们正在做的了,谢谢!我添加了日志(见屏幕截图),因为我仍然不明白为什么会发生这种情况…@Christophe,因为Azure devops使用构建服务帐户来执行管道,我们需要为此帐户提供权限,以便它能够访问此源和上游源。日志中显示的内容与您的任务配置有关。如果您担心此问题e、 请打开一个新案例,其中包括您的任务配置和相应的日志。只有这样,我们才能获得更多信息来分析原因。