【问题标题】:How do you properly set up a dotnet core class libray to publish to NuGet feed in Azure DevOps?如何正确设置 dotnet 核心类库以在 Azure DevOps 中发布到 NuGet 源?
【发布时间】:2019-03-21 22:53:57
【问题描述】:

我创建了一个测试项目以发布到我的 NuGet 源(在 Artifacts 中),但在 dotnet push 步骤中出现错误。我使用了 dotnet core 模板中的 classid 编辑器和默认步骤,并使用 nuget push 命令添加了一个新的 dotnet core 步骤。我收到此错误消息:

没有与搜索模式匹配的包。

【问题讨论】:

    标签: .net .net-core azure-devops


    【解决方案1】:

    如何正确设置 dotnet 核心类库以在 Azure DevOps 中发布到 NuGet 源?

    当您收到此错误“没有与搜索模式匹配的包”时,这意味着 nuget push 任务没有获得 nuget 包文件。可能是未生成包或要发布的 NuGet 包的路径不正确。

    所以,要解决这个问题,首先,我们需要确保我们已经生成了那个 nuget 包。要生成包,我们需要在管道中添加一个 nuget pack task 或在项目文件 .csproj 中添加以下属性:

      <PropertyGroup>
        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
      </PropertyGroup
    

    我们可以检查该包是从构建日志生成还是使用copypublish build artifacts 任务生成。

    如果生成了包,我们需要检查要发布的NuGet包的路径是否正确,我设置为$(System.DefaultWorkingDirectory)/**/*.nupkg,它可以正常工作:

    注意:如果您使用 nuget pack 任务生成包,则要发布的 NuGet 包的路径应该是 nuget pack 任务中 Package 文件夹的路径。

    希望这会有所帮助。

    【讨论】:

    • 在此之前我有一个 dotnet pack 步骤。我已经确定它与目标框架 netstandard2.0 有关。我能够让它与 netcoreapp2.1 项目一起正常工作。当我打包 netstandard2.0 项目时,它将程序集与所有依赖项一起放入 bin 文件夹中,我收到此错误:C:\Program Files\dotnet\sdk\2.2.104\Sdks\NuGet.Build.Tasks.Pack \build\NuGet.Build.Tasks.Pack.targets(202,5): error NU5026: The file 'D:\a\1\s\Shared\bin\Debug\netstandard2.0\Shared.dll' to be packed在磁盘上找不到。 [D:\a\1\s\Shared\Shared.csproj]
    【解决方案2】:

    问题似乎是项目引用的 .netstandard SDK 版本。我将所有内容从 2.0 更新到 2.2,并且 dotnet pack 命令现在可以使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 1970-01-01
      • 2019-03-26
      相关资源
      最近更新 更多