我正在尝试为我正在开发的网站设置CI服务器,但我找不到任何有关如何使用新ASP.NET 5的信息。
答案 0 :(得分:10)
首先,请勿尝试使用dotnet restore
来恢复软件包。如果您有未编译为.Net Core的内部nuget包,它将无法工作。这需要永远弄明白。我会忽略尝试使用dotnet restore
,直到人们将所有内容转换为.Net Core或Microsoft修复dotnet.exe才能更灵活。
我读过的一些内容说使用最新的NuGet测试版3.5。当我尝试这个时,我会收到以下错误。
[14:30:09] [restore]从D:\ buildAgent \ tools \ NuGet.CommandLine.3.5.0-rc1 \ tools \ NuGet.exe
启动NuGet.exe 3.5.0.1737[14:30:10] [还原]无法加载类型' NuGet.CommandAttribute'来自汇编' NuGet,Version = 3.5.0.1737,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'。
我不知道这意味着什么,我也不在乎。现在使用3.4.4。在适当的时候填写其余部分。
dotnet publish
步骤非常简单。确保提供输出目录,因为您希望在最后一步中使用它。此外,由于this bug,请务必使用%teamcity.build.workingDir%
变量指定绝对路径。否则,它将无法找到您的web.config
文件,也无法完成整个网站的发布。你会遗漏像web.config和wwwroot这样的东西!
最后我们推到八达通。这对我来说非常棘手。注意说的部分
%teamcity.build.workingDir%/published-app/**/* => OrderReviewBoard.1.0.0.zip
如果这部分内容无效,您的步骤将失败而不解释其自身!!! 无效,我的意思是您可能会放置一个teamcity环境变量(如它们显示的%build.number%
在所有示例中)该zip名称中没有正确解析。或者您指定一个不存在的路径。或者任何数量的事情,你会看到一个错误,上面写着" [Octopus Deploy]请指定一个推送的包#34;这意味着从未生成一个因为该语句失败。我意识到你想在那里有一个自动递增的内部版本号。我会让你知道如何做到这一点。
不要对这里运行的东西感到困惑。 Octopus tries to explain it on their site,但它隐藏在这里。有octo pack
和octo push
。 octo pack
的新版本已经不见了,基于你在#34;包路径"中所做的任何陈述。框。不要试图创建一个nuspec包,或尝试使用dotnet pack
。这些都是我们目的的死胡同。创建一个.zip文件,继续您的生活。最后,请注意我添加的其他命令行参数。这些可以帮到你一点点。他们并不是必需的。祝好运。
答案 1 :(得分:9)
我们(ASP.NET团队)使用TeamCity作为构建服务器。每个repo都有一个build.cmd
文件,类似于this one。 TeamCity只是调用该文件。
对于Mac / Linux版本,有一个build.sh
文件。
答案 2 :(得分:4)
目前您可以尝试使用TeamCity插件进行.NET Core项目: https://github.com/JetBrains/teamcity-dotnet-plugin
答案 3 :(得分:1)
请查看这些博文;
http://blog.coderinserepeat.com/2015/01/25/building-asp-net-5-projects-in-teamcity/
http://blog.maartenballiauw.be/post/2014/12/19/Building-future-NET-projects-is-quite-pleasant.aspx
答案 4 :(得分:1)
由于ASP.NET核心世界发生了很多变化,我被问过几次,我写下了step-by-step guide on how to setup a CI/CD environment using TeamCity for .NET Core。我认为这对初学者特别有用。