Azure DevOps NuGet Pack忽略了csproj软件包详细信息

时间:2020-10-06 19:05:35

标签: c# azure-devops nuget

我似乎无法弄清楚是什么导致了Azure DevOps中的此问题。当我通过创建release分支将它们视为发布版本时,我将三个独立的项目配置为执行nuget push操作。 CI / CD将启动并自动创建/更新程序包。这在三个NuGet软件包中的两个上都可以正常工作。但是,我无法获得第三个软件包来读取csproj中的详细信息。我什至从两个工作示例中复制了构建管道,并验证了发布的工件显示nuspec文件不是我在csproj中指定的文件。

您可以看到我上次在9月19日发布了两个有效示例,并提供了有效的说明。但是,第三个没有像其他两个一样获得有效的描述(即使它在csproj中设置了)。管道完全相同,最近是否进行了更新以要求额外的配置来读取csproj文件的内容?

在Azure DevOps外部本地执行构建,并使用选项“在生成时生成NuGet程序包”将生成我想要的nuspec文件。我不确定为什么Azure DevOps不能用于该单个项目。

enter image description here

2 个答案:

答案 0 :(得分:1)

我不确定这是否是NuGet for .NET Standard 2.1的错误,还是 还有其他问题。

Nuget.exe可以很好地支持.NET Standard 2.1。我可以在自己的身边重现同样的行为。

零食包.net standard 2.0

enter image description here

然后我将目标框架从2.0更改为2.1,并重新生成项目,出现了未指定Description / Author的Warning NU5115。

零食包.net standard 2.1

enter image description here

解决方案:

请改用dotnet pack命令。

Create and publish .NET standard package locallyAzure Devops Nuget task都建议将.NET Core CLI taskdotnet pack命令一起用于SDK样式的项目,例如.Net Standard和.Net Core。

enter image description here

注意(来自Nuget任务)。

enter image description here

因此,可以考虑将Use .net core taskdotnet pack命令一起使用,它可以很好地读取项目文件。

答案 1 :(得分:0)

不确定根本原因是什么,但是第三个项目是.NET Standard 2.1,其他项目是.NET Standard 2.0。显然,这会导致NuGet Pack失败。但是,作为一种解决方法,我可以使用“在生成时生成NuGet软件包”选项,并且可以正常工作。在发布管道中,我使用该版本而不是NuGet Pack版本。现在包括说明,作者和我想要的其他重要信息。

我不确定这是NuGet for .NET Standard 2.1的错误还是其他错误。如果遇到此选项,请使用“在生成时生成NuGet软件包”,然后在发布管道中,浏览到该.nupkg文件,并用星号替换,以便将来版本使用。