gpt4 book ai didi

c# - 在 Azure DevOps 管道中包含本地 dll

转载 作者:行者123 更新时间:2023-12-04 13:10:35 25 4
gpt4 key购买 nike

在我的 C# 项目中,我引用了我公司的一个 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>..\PrivateReferences\ZZZ.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 Artifacts以 Azure DevOps 为基础。然后在您项目的管道中,您可以使用 NuGet restore task将包恢复到您的项目中。
发布包后,在本地计算机上通过 Visual Studio 构建项目时,还可以连接到 Azure Artifacts 源以将包还原到项目中。
[更新]
您是否检查了管道运行的输出控制台日志以查看无法恢复包的原因?原因是否为未经授权的错误 ,例如 401 403 ?
如果是这样,在之前NuGet 还原任务 ,您需要使用 NuGet Authenticate task提供认证信息。这里还需要创建一个NuGet service connection用来。
通常,您为发布自己的自定义包而设置的提要是私有(private)的,在管道中访问提要时,需要进行身份验证。
在您本地的 Visual Studio 上,由于您已使用您的帐户登录,当您连接到提要时,VS 将自动使用您的帐户进行身份验证。

关于c# - 在 Azure DevOps 管道中包含本地 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65804770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com