【问题标题】: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 中构建发布:
- Dotnet 恢复 - .NET Core (dotnet) - 恢复 NuGet 包
- Gulp(可选)- Gulp - 运行 gulp 任务
- Dotnet 测试(可选) - .NET Core (dotnet) - 在测试项目中运行测试
- Dotnet Build - .NET Core (dotnet) - 构建项目
- Dotnet Publish - .NET Core (dotnet) - 将项目发布到指定的输出目录
- * Octo Pack - 命令行 - 使用以下命令执行“octo.exe”命令行工具
octo pack --id %PackId% --version %PackVersion% --basepath %PackDirectoryPath% --format zip --outfolder %ArtifactsDirectoryPath%
- Octo Push - OctopusDeploy:推送包 - 将打包的文件推送到 Octopus 内置的包存储库
- Octo 创建发布 - OctopusDeploy:创建发布 - 在 Octopus 中创建发布,其中包含所需的包
* 显然你应该在 TC 代理服务器上安装 octo.exe 工具并将其添加到 PATH 变量中,以便能够从 TC 构建中调用它。
【讨论】:
-
-
对不起,我完全忘记向您发布反馈...感谢您的意见,此程序运行良好!尽管我使用 CMD (dotnet build ProjectName.Models\ProjectName.Models.csproj --framework netcoreapp2.0 --configuration Release . . .) 以特定顺序构建项目文件,但 .sln 的多进程构建往往会“锁定”文件并破坏 link 中提到的构建。另外,我没有在 octo 包中指定任何 --format 或 --outfolder。标记为答案!
【解决方案2】:
现在使用 DotNet Core,您不必执行所有这些设置。
Nuget 包可以作为构建步骤的一部分生成。
按照这些简单的步骤进行
- 右键单击项目(.csproj)并选择属性
- 在属性屏幕上,从右侧菜单中选择包选项卡并勾选(选择)在构建时生成 NuGet 包。
- 输入基本包设置,如包 ID、版本、作者和
等(应该自动填充)
-
保存
之前使用简单的 dotnet 构建步骤在 TeamCity 上运行一个构建
进入下一步。
转到 Team City 项目构建设置
- 选择常规设置,在工件路径上选择树形图标并导航到
Bin\Release 文件夹,您将在那里看到您的 Nuget 包。选择
该文件并保存。
在 Team City 中再次运行构建,成功完成构建后,您将在工件中看到 NuGet 包文件。
希望这对您有所帮助,因为您不需要 Octopus Pack 或 Dotnet Pack 步骤