我目前正在使用 Azure 管道中的 YAML 管道,但遇到了障碍。我已经有一个解决方法;但是,我很好奇是否有人遇到过这个问题并妥善解决。这是问题所在。
我有一个包含多个解决方案的项目。一些解决方案正在使用 package.config,而其他解决方案正在使用 PackageReference。在我们使用以下任务对项目中的解决方案执行 nuget 恢复之前,这并不是什么大问题。
- task: NuGetToolInstaller@1
displayName: 'Detect\Install NuGet'
- task: NuGetCommand@2
displayName: 'Restore NuGet Packages'
inputs:
restoreSolution: '**\*.sln'
feedsToUse: 'config'
command: 'restore'
上述任务成功检测到现有的 NuGet 安装,如果没有,则安装最新版本的 NuGet。然后它使用 PackageReference 对所有包执行 nuget 还原。这就是摩擦发挥作用的地方。此任务会跳过任何使用 package.config 的解决方案,因为它默认为 PackageReference 解决方案。为了解决这个问题,我们添加了一个额外的 NuGet 命令任务,我们指向我们存储库中的本地 nuget.config 文件。
注意:第一个任务使用在我们的管道代理上配置的系统默认 nuget.config 文件。
- task: NuGetCommand@2
displayName: 'Restore NuGet Packages for package.config'
inputs:
restoreSolution: '**\*.sln'
feedsToUse: 'config'
nugetConfigPath: 'nuget.config'
虽然这不会为您的构建增加大量时间,但它仍然不理想,因为使用单个任务会很好。任何帮助将不胜感激。
谢谢,源代码