14

我正在尝试为我正在开发的网站设置 CI 服务器,但我找不到任何有关如何使用新的 ASP.NET 5 进行此操作的信息。

4

5 回答 5

10

我得到了你的兄弟。这花了我几天时间才弄清楚。此配置适用于 ASP.NET Core 1.0 RC2/preview2 项目的 TeamCity v10。作为奖励,我包括了它推送到 Octopus Deploy 的步骤。您将需要安装 dotnet teamcity 插件和具有推送功能的最新 Octopus Deploy 插件。以下是构建步骤的概述:

构建步骤概述

首先,不要尝试使用dotnet restore还原包。如果您有未编译为 .Net Core 的内部 nuget 包,它将不起作用。这花了很长时间才弄清楚。我会忽略尝试使用dotnet restore,直到人们将所有内容都转换为 .Net Core 或 Microsoft 修复 dotnet.exe 以使其更灵活。

构建步骤 1/3

我读到的一些东西说使用最新的 NuGet 测试版 3.5。当我尝试这个时,我会收到以下错误。

[14:30:09][恢复] 从 D:\buildAgent\tools\NuGet.CommandLine.3.5.0-rc1\tools\NuGet.exe 启动 NuGet.exe 3.5.0.1737

[14:30:10][恢复] 无法从程序集“NuGet,版本=3.5.0.1737,文化=中性,PublicKeyToken=31bf3856ad364e35”加载类型“NuGet.CommandAttribute”。

我不知道那是什么意思,我不在乎。现在使用 3.4.4。其余部分酌情填写。

构建步骤 2/3

dotnet publish一步非常简单。确保提供输出目录,因为您想在最后一步中使用它。%teamcity.build.workingDir%此外,由于此错误,请务必使用变量指定绝对路径。否则它将无法找到您的web.config文件并且无法完成整个站点的发布。您将丢失 web.config 和 wwwroot 之类的内容! 构建步骤 3/3

最后我们推送到八达通。这对我来说非常棘手。注意说的部分 %teamcity.build.workingDir%/published-app/**/* => OrderReviewBoard.1.0.0.zip

如果其中任何部分无效,您的步骤将失败而不会自行解释!!!无效,我的意思是您可能%build.number%在无法正确解析的 zip 名称中放置了一个 teamcity 环境变量(就像它们在所有示例中显示的那样)。或者您指定一个不存在的路径。或者任何数量的东西,你会看到一个错误,上面写着“[Octopus Deploy] Please specify a package to push”。这意味着由于该语句失败,因此从未生成过一个。我意识到你想在那里有一个自动递增的内部版本号。我会把它留给你来弄清楚如何做到这一点。

不要对这里运行的内容感到困惑。Octopus 试图在他们的网站上解释它,但它被隐藏在这里。有octo packocto pushocto pack根据您在“包路径”框中输入的任何语句,新版本的已经消失了。不要在尝试创建 nuspec 包或尝试使用dotnet pack. 对于我们的目的来说,这些都是死胡同。创建一个 .zip 文件并继续您的生活。最后,请注意我添加的其他命令行参数。这些帮助你一点点。它们不是必需的。祝你好运。

于 2016-08-12T21:58:19.100 回答
9

我们(ASP.NET 团队)使用 TeamCity 作为构建服务器。每个 repo 都有一个build.cmd文件,类似于这个. TeamCity 只是调用该文件。

对于 Mac/Linux 版本,有一个build.sh文件。

于 2015-05-22T17:36:47.610 回答
4

目前您可以尝试将 TeamCity 插件用于 .NET Core 项目: https ://github.com/JetBrains/teamcity-dotnet-plugin

于 2016-02-12T11:45:04.167 回答
1

由于 ASP.NET Core 世界发生了许多变化,并且我被问过几次,我写了一个关于如何使用 TeamCity for .NET Core 设置 CI/CD 环境的分步指南。我认为这对初学者特别有帮助。

于 2017-02-16T18:13:53.253 回答