我正在尝试从 Azure DevOps 上的 C# 项目生成 NuGet 包。我在构建管道中设置了一个“dotnet pack”任务来生成包。该项目的目标是 netstandard20。项目风格是 PackageReference。它有一些依赖项,但只有在 nuget.org 上可用。
构建任务失败error NU5019: File not found
这是构建任务的输出:
NU5019 表示 nuspec 文件“...包含不存在的文件”:https ://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu5019
由构建任务生成的提取的 .nuspec 文件包含以下 <files> 部分:
<files>
<file src="C:\agent\_work\23\s\GenericDataAccess\bin\Production\netstandard2.0\Sparinvest.GenericDataAccess.dll" target="lib\netstandard2.0\Sparinvest.GenericDataAccess.dll" />
</files>
在我看来,构建步骤构建了 .dll,然后立即无法找到它进行打包。但是,会生成 .dll。
当我在我的机器上本地执行相同的命令行(在构建日志中看到)时,没有问题。
但是,我注意到我的机器上的 .Net 版本与构建服务器上的不同(请参阅构建日志): 我的机器
谁能帮我弄清楚构建步骤的问题是什么以及如何使它工作?
注意:我更喜欢使用“dotnet pack”而不是 NuGet.exe,因为 dotnet 能够在包中包含依赖项(NuGet 不支持 PackageReference 样式)。