Include local dll in Azure DevOps pipeline(在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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在Azure DevOps管道中包括本地DLL
基础教程推荐
- 重新排序 WPF TabControl 中的选项卡 2022-01-01
- SonarQube C# 分析失败“不是指针的有效行偏移" 2022-01-01
- 获取C#保存对话框的文件路径 2022-01-01
- Mono https webrequest 失败并显示“身份验证或解密失败" 2022-01-01
- 从 C# 控制相机设备 2022-01-01
- C# 9 新特性——record的相关总结 2023-04-03
- 更新 Visual Studio 中的 DataSet 结构以匹配新的 SQL 数据库结构 2022-01-01
- 在 VB6 或经典 ASP 中使用 .NET 2022-01-01
- 如果条件可以为空 2022-01-01
- 将数据集转换为列表 2022-01-01
