我正在尝试为我开发的网站设置一个CI服务器,但是我找不到任何关于如何在新的ASP.NET 5中实现它的信息。
我正在尝试为我开发的网站设置一个CI服务器,但是我找不到任何关于如何在新的ASP.NET 5中实现它的信息。
首先,不要尝试使用dotnet restore
来恢复软件包。如果您有未编译为.Net Core的内部nuget包,则无法正常工作。这花费了很长时间才弄清楚。在人们将所有内容转换为.Net Core或Microsoft修复dotnet.exe变得更加灵活之前,我建议忽略尝试使用dotnet restore
。
dotnet publish
步骤非常简单。确保提供输出目录,因为您希望在最后一步中使用它。此外,请务必使用 %teamcity.build.workingDir%
变量指定绝对路径,因为存在this bug。否则,它将无法找到您的 web.config
文件并且无法完成整个网站的发布。您将会缺少像 web.config 和 wwwroot 这样的东西!
最后我们推送到 Octopus。这对我来说非常棘手。请注意部分内容,其中包括%teamcity.build.workingDir%/published-app/**/* => OrderReviewBoard.1.0.0.zip
%build.number%
),但它们没有正确解析。或者你指定了一个不存在的路径。或者其他任何问题,你将看到一个错误,上面写着“[Octopus Deploy]请指定要推送的软件包”。这意味着该语句失败,因此未生成任何软件包。我知道你想在那里有一个自动递增的构建编号。我会让你自己想办法实现。octo pack
和octo push
。基于您放入“套餐路径”框中的任何语句,新版本的octo pack
正在不为人知的地方运行。不要分心去创建nuspec包或尝试使用dotnet pack
。对于我们的目的来说,这些都是死胡同。创建一个.zip文件并继续您的生活。最后,请注意我添加的附加命令行参数。它们可以帮助你一点点,但不是必需的。祝好运。dotnet publish %fullpathtomywui%
),但是我遇到了一个错误: Lock file Microsoft.DotNet.ProjectModel.Graph.LockFile 包含 msbuild 项目,但没有导出文件
在第二步。 - Alex Zhukovskiyproject.fragment.lock.json
文件出现之前,我也遇到了同样的错误。我的当前解决方法是在 xproj 文件上调用 MSBuild,该操作生成此文件,然后使用 dotnet publish 运行无误。但是,你的帖子非常有帮助:例如,我尝试使用 3.5 RC1 进行工作,但出现了 CommandAttribute
错误,所以我使用了可行的 3.4.4 版本。 - Alex Zhukovskiybuild.cmd
文件。TeamCity只需调用该文件。build.sh
文件。build.cmd
/build.sh
文件。dev分支中的构建文件是针对RC2的dotnet
。对于RC1,您必须使用来自RC1标记的文件。在您的情况下有什么特别的问题吗? - Victor Hurdugaci目前,您可以尝试使用针对.NET Core项目的TeamCity插件: https://github.com/JetBrains/teamcity-dotnet-plugin
由于ASP.NET Core世界已经发生了许多变化,我被问及此事多次,因此我撰写了一份逐步指南,介绍如何使用TeamCity为.NET Core设置CI/CD环境。我认为这对初学者尤其有帮助。