本文介绍了在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项目源以将包还原到您的项目中。
[更新]
您是否检查了管道运行的输出控制台日志,以了解导致包无法恢复的原因?原因是否为未经授权的错误,如401
或403
?
如果是,则在NuGet还原任务之前,您需要使用NuGet Authenticate task提供身份验证信息。您还需要在此处创建NuGet service connection以供使用。
通常,您为发布自定义程序包而设置的提要是私有的,当访问管道中的提要时,需要进行身份验证。
在您本地的Visual Studio上,由于您使用您的帐户登录,VS将在您连接到源时自动使用您的帐户进行身份验证。
这篇关于在Azure DevOps管道中包括本地DLL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!