自动 NugetPackage 上传到 Nuget feed

use*_*011 2 visual-studio nuget nuget-server asp.net-core

使用 Visual Studio 2017 和 .net core 构建项目时是否可以自动将 Nuget 包上传到 feed?

我可以选中自动生成包的选项,但我不知道如何自动化发布过程。

谢谢!

Leo*_*SFT 5

使用 Visual Studio 2017 和 .net core 构建项目时是否可以自动将 Nuget 包上传到 feed?

答案是肯定的。由于 NuGet 命令行界面 (CLI) 提供了完整的 NuGet 功能来安装、创建、发布和管理包。

https://learn.microsoft.com/en-us/nuget/tools/nuget-exe-cli-reference#push

我们可以在 Visual Studio 生成 package 之后添加一个目标来执行发布命令行。另外,当您选中自动生成包的选项时,您可以注意到生成包的目标是“ GenerateNuspec”(MSBuild项目构建输出详细程度->详细)。所以我们可以在目标“ GenerateNuspec”之后添加一个目标

<Target Name="PushNuGetPackage" AfterTargets="GenerateNuspec">
Run Code Online (Sandbox Code Playgroud)

右键单击项目 - >选择编辑projectname.csproj- >添加以下脚本:

  <Target Name="PushNuGetPackage" AfterTargets="GenerateNuspec">
    <Message Text="Push NuGet Package to NuGet Feed" Importance="high"></Message>
    <Exec Command="D:\nuget.exe push $(ProjectDir)bin\Debug\AutoPushNuGetPackageTest.1.0.0.nupkg -Source D:\LocalServer"></Exec>
  </Target>
Run Code Online (Sandbox Code Playgroud)

注意:exec命令应该是:

<Exec Command="PathOfYourNuGet\nuget.exe push PathOfYourPackage\PackageName.nupkg -Source NuGetFeedPath"></Exec>
Run Code Online (Sandbox Code Playgroud)

通过此目标,当使用 Visual Studio 构建项目时,Visual Studio 将自动将 Nuget 包上传到源:

在此输入图像描述