“ dotnet发布”命令行跳过了对Azure功能的部署

时间:2018-10-29 14:48:23

标签: c# azure .net-core azure-functions

我正在为我的站点设置一些DevOps,到目前为止,我已经使用以下命令成功部署了两个ASP.NET Core应用程序:

dotnet publish ProjectName.csproj /p:PublishProfile="PublishProfileName" /p:Password=password

我刚刚使用V2运行时和.NET Core 2.1创建了Azure函数,如对所有新项目所建议的那样(请参见此处https://azure.microsoft.com/en-us/blog/introducing-azure-functions-2-0/),但是如果我使用相同的命令,则会发现它仅将其发布到本地文件夹,并且似乎没有将项目部署到Azure。

如果我使用等效的MSBuild,似乎也会错过部署阶段。

我猜测这与项目类型有关,但没有适当的构建目标,但是我不确定如何进一步跟踪它。

我可以从Azure下载发布设置,将它们导入Visual Studio并通过VS发布,因此,如果VS路径可行,这可能是某个地方的工具回归或错误,而不是不受支持的东西? / p>

我正在使用:

  • Visual Studio 15.8.8 +28010.2048
  • Azure功能和Web作业工具15.9.02046.0

如果我不应该将dotnet publish与Azure函数一起使用,应该如何使用命令行CD?我已经看到了对Azure Function CLI工具的引用,但是如果可以通过其他工具完成安装,则我不想在我们的构建代理上安装程序包管理器。

3 个答案:

答案 0 :(得分:2)

最后,借助答案和评论(感谢所有),我有了一个MSBuild命令行,可用于部署.NET Core 2.1 Function项目:

msbuild /p:DeployOnBuild=True /p:PublishProfile=somename.pubxml /p:Configuration=Release

但是,值得注意以下几点:

.NET Core常规发行说明

  1. 如果您拼写错误的发布配置文件名称,它将以静默方式跳过部署(无警告或错误)。

ASP.NET Core和.NET Core功能部署之间的区别

  1. 如果您使用“ dotnet publish”,它将始终跳过部署。

  2. 如果不指定/ p:DeployOnBuild = True,它将跳过部署。

答案 1 :(得分:1)

如果您不想在构建代理上使用“软件包管理器”,则必须选择对功能应用程序进行 zip部署。详细信息可以在MSDN上找到:

https://docs.microsoft.com/en-us/azure/azure-functions/deployment-zip-push#rest

答案 2 :(得分:1)