在Azure DevOps管道中包括本地DLL [英] Include local dll in Azure DevOps pipeline

查看:24
本文介绍了在Azure DevOps管道中包括本地DLL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的C#项目中,我引用了我公司的一个DLL,该DLL不在NuGet上(因为它不是公共的),并且我在Azure DevOps中的管道一直失败,因为它说找不到引用。

Error CS0234: The type or namespace name 'YYY' does not exist in the namespace 'ZZZ' (are you missing an assembly reference?)

按照this post的建议,我在我的解决方案中复制了DLL,并从那里引用它,因此DLL是受版本控制的,并且驻留在repo中。 下面是csproj的摘录:

<Reference Include="ZZZ.YYY, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..PrivateReferencesZZ.YYY.dll</HintPath>
  <Private>False</Private>
</Reference>

解决方案完美地构建在我的机器上,但它在Azure上总是失败。我错过了什么?

谢谢!

在Bright Ran-MSFT回复后编辑
以下是我的YAML节选:

trigger:
- develop

pool: 'Default'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Debug'

steps:

- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'select'
    vstsFeed: '<GUID of my Feed>'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

推荐答案

您可以将这些DLL作为您自己的自定义NuGet包发布到Azure DevOps上的Azure Artifacts提要。然后,在项目的管道中,您可以使用NuGet restore task将包还原到您的项目中。

发布包后,在本地计算机上通过Visual Studio生成项目时,您还可以连接到Azure项目源以将包还原到您的项目中。

[更新]

您是否检查了管道运行的输出控制台日志,以了解导致包无法恢复的原因?原因是否为未经授权的错误,如401403

如果是,则在NuGet还原任务之前,您需要使用NuGet Authenticate task提供身份验证信息。您还需要在此处创建NuGet service connection以供使用。

通常,您为发布自定义程序包而设置的提要是私有的,当访问管道中的提要时,需要进行身份验证。

在您本地的Visual Studio上,由于您使用您的帐户登录,VS将在您连接到源时自动使用您的帐户进行身份验证。

这篇关于在Azure DevOps管道中包括本地DLL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆