在Azure DevOps流水线中如何从其他软件包源安装NuGet包?

7

我正在尝试在Azure上运行一些API测试,之前我已经能够运行我的构件,但是这个特殊任务需要一个不在包源nuget.org中的软件包,是我所在公司的软件包,因此当我运行pipeline时,我会收到以下消息:

##[error]nuget命令以退出代码(1)和错误(NU1101: 找不到程序包: 软件包名称

在创建项目时我也遇到了这个问题,所以我不得不添加包源,那么在pipeline中我该如何做呢?

3个回答

7
您可以在解决方案级别上放置一个nuget.config文件,其中列出了软件包源,例如:

nuget.config 文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="your-nuget" value="https://pkgs.dev.azure.com/example/_packaging/example-nuget/nuget/v3/index.json" />
    <add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
</configuration>

注意,这也适用于Visual Studio(如果您通过VS工具菜单手动添加,则应该能够删除额外的包源)。
然后,根据您所用的.net版本,只需在构建前添加还原软件包的步骤,使用 DotNetCoreCLI@2(命令:restore feedsToUse:'config')或NuGetCommand@2(命令:restore feedsToUse:'config')。

0
如果你说的包是自定义包,那么你首先需要将NuGet包推送到Azure Artifact,然后才能配置Azure DevOps管道从Azure Artifact还原该包。

0
假设您的问题标签表明您使用Azure DevOps,您需要在YAML文件中设置还原任务,如下所示:

- task: DotNetCoreCLI@2
  displayName: 'Restore Nuget Packages'
  inputs:
    command: 'restore'
    projects: '**/*.csproj'
    feedsToUse: 'select'
    vstsFeed: '<your key>'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接