使用TeamCity for .NET Core 2.0创建.nupkg

问题描述 投票:0回答:2

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

  • 'dotnet restore'
  • 'dotnet build'
  • 'dotnet pack'
  • 'dotnet发布'

我还包括一个'OctopusDeploy Package'步骤,但由于没有生成包,所以这一步没有做任何事情。

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

关于如何解决这个问题的任何想法?任何反馈都非常感谢。

.net teamcity octopus-deploy
2个回答
4
投票

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

所以我遵循TC构建步骤来在Octopus中构建版本:

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

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


3
投票

使用DotNet Core,您无需执行所有这些步骤。

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

按照这些简单的步骤

  1. 右键单击项目(.csproj)并选择属性
  2. 在属性屏幕上,从右侧菜单中选择Package选项卡,然后勾选(选择)在构建时生成NuGet包。
  3. 输入基本软件包设置,如软件包ID,版本,作者等(应自动填写)
  4. 保存 在进入下一步之前,使用简单的dotnet构建步骤在TeamCity上运行一个构建。
  5. 转到Team City项目构建设置
  6. 选择常规设置,在工件路径选择树图标上,然后导航到Bin \ Release文件夹,您将在那里看到您的Nuget包。选择该文件并保存。

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

希望这有帮助,因为您可以看到不需要Octopus Pack或Dotnet Pack步骤