【问题标题】:Create .nupkg with TeamCity for .NET Core 2.0使用 TeamCity 为 .NET Core 2.0 创建 .nupkg
【发布时间】:2018-02-14 13:43:28
【问题描述】:

我正在尝试将 TeamCity 和 Octopus Deploy 用于基于 .NET Core 2.0 构建的解决方案的 CI/CD 流程。我无法正确配置 teamcity 中的构建步骤,因为我没有创建任何包。我正在为 TeamCity 使用 .NET Core Plugin 并执行相应的步骤:

  • 'dotnet 恢复'
  • 'dotnet 构建'
  • 'dotnet 包'
  • 'dotnet 发布'

我还包括一个“OctopusDeploy Package”步骤,但由于没有生成任何包,所以这一步什么都不做。

项目不包含项目的任何 .json 文件(只有一些配置文件),而是 .csproj 文件。我是整个 CI/CD 流程的新手,但我已经成功地使用 octopack 为 .NET Framework 4.6.1 解决方案实现了它。

知道如何解决这个问题吗?非常感谢任何反馈。

【问题讨论】:

    标签: .net teamcity octopus-deploy


    【解决方案1】:

    我已经设法使用octo.exe tool 将其打包成 *.zip 包文件。

    所以我有以下 TC 构建步骤来在 Octopus 中构建发布:

    1. Dotnet 恢复 - .NET Core (dotnet) - 恢复 NuGet 包
    2. Gulp(可选)- Gulp - 运行 gulp 任务
    3. Dotnet 测试(可选) - .NET Core (dotnet) - 在测试项目中运行测试
    4. Dotnet Build - .NET Core (dotnet) - 构建项目
    5. Dotnet Publish - .NET Core (dotnet) - 将项目发布到指定的输出目录
    6. * Octo Pack - 命令行 - 使用以下命令执行“octo.exe”命令行工具octo pack --id %PackId% --version %PackVersion% --basepath %PackDirectoryPath% --format zip --outfolder %ArtifactsDirectoryPath%
    7. Octo Push - OctopusDeploy:推送包 - 将打包的文件推送到 Octopus 内置的包存储库
    8. Octo 创建发布 - OctopusDeploy:创建发布 - 在 Octopus 中创建发布,其中包含所需的包

    * 显然你应该在 TC 代理服务器上安装 octo.exe 工具并将其添加到 PATH 变量中,以便能够从 TC 构建中调用它。

    【讨论】:

    • octo.exe 也可以作为 Nuget 包使用 - nuget.org/packages/OctopusTools
    • 对不起,我完全忘记向您发布反馈...感谢您的意见,此程序运行良好!尽管我使用 CMD (dotnet build ProjectName.Models\ProjectName.Models.csproj --framework netcoreapp2.0 --configuration Release . . .) 以特定顺序构建项目文件,但 .sln 的多进程构建往往会“锁定”文件并破坏 link 中提到的构建。另外,我没有在 octo 包中指定任何 --format--outfolder。标记为答案!
    【解决方案2】:

    现在使用 DotNet Core,您不必执行所有这些设置。

    Nuget 包可以作为构建步骤的一部分生成。

    按照这些简单的步骤进行

    1. 右键单击项目(.csproj)并选择属性
    2. 在属性屏幕上,从右侧菜单中选择包选项卡并勾选(选择)在构建时生成 NuGet 包。
    3. 输入基本包设置,如包 ID、版本、作者和 等(应该自动填充)
    4. 保存

      之前使用简单的 dotnet 构建步骤在 TeamCity 上运行一个构建 进入下一步。

    5. 转到 Team City 项目构建设置

    6. 选择常规设置,在工件路径上选择树形图标并导航到 Bin\Release 文件夹,您将在那里看到您的 Nuget 包。选择 该文件并保存。

    在 Team City 中再次运行构建,成功完成构建后,您将在工件中看到 NuGet 包文件。

    希望这对您有所帮助,因为您不需要 Octopus Pack 或 Dotnet Pack 步骤

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多