gpt4 book ai didi

visual-studio-2017 - 如何在 VS 2017 中自动化 NuGet 包和发布

转载 作者:行者123 更新时间:2023-12-01 01:46:04 27 4
gpt4 key购买 nike

寻找允许我们自动化 NuGet 包部署过程的解决方案。目前“Pack”选项只是构建包,但其他一切都需要手动完成。我希望将这些步骤内置到这个新的“打包和部署”任务中:

  • 增量包版本 - 类似于“npm 版本补丁”
  • 建包
  • 将刚刚创建的包推送到 NuGet 存储库

  • 也许有人已经这样做了并且可以分享经验?

    经过更多研究发现如何在打包后推送: Automating Nuget Package Push With .NetCore RC2

    最佳答案

    1. Increment Package version - Something similar to "npm version patch"


    在回答这个问题之前,我们需要了解一些关于 AssemblyVersion的信息。 , AssemblyInformationalVersion和 NuGet 版本,请查看 this thread一些细节。然后你就会知道:

    Nuget 也不使用 AssemblyVersionAssemblyFileVersionAssemblyInfo.cs文件。它使用第三个版本控制属性:AssemblyInformationalVersion .

    Nuget 实际上应用该字符串中的任何内容作为包版本。所以,要增加包版本,我们需要在 AssemblyInfo.cs中手动添加以下代码:
    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
    [assembly: AssemblyInformationalVersion("2.0.0")]

    所以,当我们需要发布新版本的包时,只需要更新 AssemblyInformationalVersion的值即可。在 AssemblyInfo.cs文件。

    1. Build package


    这个问题的答案取决于你的项目风格,旧项目风格还是新项目风格(VS2017-SDK)。

    来源 Old csproj to new csproj: Visual Studio 2017 upgrade guide

    当您在旧式项目中时:

    您可以通过构建后事件自动打包 nuget 包:
    $(PathOfYourNuGet)\nuget.exe pack "$(ProjectPath)"

    通过此构建事件,MSBuild 将在您构建项目时自动创建 nuget 包。

    当您在 New style 项目中时:
    在新样式项目中,packagin nuget 包变得非常容易。只需选中复选框 Generate NuGet packafe on build在项目属性的包选项卡上:

    enter image description here

    注意:在新建样式项目时,可以在包选项卡的包版本中增加包版本。

    1. Push just created package to the NuGet repository


    正如你发现的,在自动发布nuget包后,你可以添加一个自定义目标来推送它:
      <Target Name="PushNuGetPackage" AfterTargets="GenerateNuspec">
    <Message Text="Push NuGet Package to NuGet Feed" Importance="high"></Message>
    <Exec Command="$(PathOfYourNuGet)\nuget.exe push $(TargetDir)\xxx.1.0.0.nupkg -Source NuGetrepository"></Exec>
    </Target>

    来源 Automatic NugetPackage upload to Nuget feed

    注意:不能将同名同版本的 nuget 包推送到 nuget.org。

    关于visual-studio-2017 - 如何在 VS 2017 中自动化 NuGet 包和发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49193826/

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