如何使用TeamCity通过WebDeploy部署ASP.NET Core应用程序?

5
我对使用Webdeploy在TeamCity上将ASP.NET Core应用程序发布到服务器方面有些困惑。
我已经安装了dotnet core teamcity插件,有两个构建步骤:
1. dotnet restore(作为命令行步骤,内置步骤在nuget上超时) 2. dotnet publish src/projectName/projectName.csproj
但是,我不确定第三步要做什么,这一步是将dotnet publish的结果发布到我们的服务器。
传统上,我们会使用MSBuild并针对发布配置文件,但我不确定.NET core是否使用MSBuild。
我的解决方案中有一个发布配置文件,在VS2017中成功运行。我查看了TeamCity博客,其中讨论了如何设置TeamCity以使用.NET Core,虽然它提到了WebDeploy,但只是简单地提到它可以与dotnet publish一起使用,没有详细说明。

你有没有看过TeamCity团队的这篇博客文章 https://blog.jetbrains.com/teamcity/2016/11/teamcity-dotnet-core/?还有这篇文章 https://medium.com/monkii/how-to-deploy-asp-net-core-sites-using-teamcity-or-just-command-line-cf05fdee58f5,更详细地介绍了如何使用TeamCity或只用命令行来部署ASP.NET Core网站。 - Geovani Martinez
2个回答

0
我使用下面的命令创建Web部署包:
dotnet publish <Path_and_name_of_project>.csproj --configuration Release /p:PublishProfile=<profile_name>

在这一步之后,我使用WebDeploy命令将程序包部署到IIS。


0
然而,我对第三步该怎么做感到困惑,即将dotnet publish的结果发布到我们的服务器上。传统上,我们会使用MSBuild并针对一个发布配置文件,但我不确定.NET Core是否利用MSBuild。
我还发现自动化.NET Core部署的文档缺乏。一般来说,要部署到IIS,你有两个选择。
你仍然可以使用MSBuild和/p:DeployOnBuild=true来部署在Visual Studio中创建的.pubxml发布配置文件,就像.NET Framework站点一样。在dotnet restore之后运行MSBuild,而不是dotnet publish。
或者,你也可以使用dotnet publish发布到一个文件夹,并使用msdeploy.exe将该文件夹与可能位于远程计算机上的IIS站点同步。通常如下:
msdeploy.exe -verb:sync -source:contentPath="<the folder published to by dotnet publish>"  -dest:contentPath=<Your IIS Site>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接