Azure devops azure devops&;公共nuget在构建时的上游行为
我试图通过使用。因此,我设置了一个Nuget.config文件,其中有一个条目到我的提要中,并带有文档中所述的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包。但是在构建时,当公共包不在我的服务的上游缓存中时,构建代理将找不到它…(在这种情况下,似乎没有使用上游来为缓存提供数据) 这正常吗?是否仅限
标记
在devops服务器端,我已经为公共Nuget Gallery设置了一个上游源的提要(以便缓存,因为在公共包管理器中断的情况下这听起来很不错)
当我在任何机器上直接使用nuget.exe
客户端时,我可以在任何情况下安装任何nuget.org包。但是在构建时,当公共包不在我的服务的上游缓存中时,构建代理将找不到它…(在这种情况下,似乎没有使用上游来为缓存提供数据)
这正常吗?是否仅限于生成时已缓存的包
在我们的开发团队中,我们习惯于通过VS UI(右键单击项目“管理nuget软件包”)添加nuget软件包。在这种模式下,我们看不到那些上游软件包,因此我们在开发时直接将源代码切换到nuget
我找到的解决方案可以是:
- 将第二个条目添加到
以声明Nuget.org用于构建(但我们失去了缓存功能)Nuget.config
- 要在开发时系统地使用命令行
安装软件包nuget.exe
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、 请打开一个新案例,其中包括您的任务配置和相应的日志。只有这样,我们才能获得更多信息来分析原因。