“dotnet publish”命令行跳过部署到 Azure Functions

And*_*ndy 5 c# azure .net-core azure-functions

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

dotnet publish ProjectName.csproj /p:PublishProfile="PublishProfileName" /p:Password=password
Run Code Online (Sandbox Code Playgroud)

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

如果我使用 MSBuild 等效项,它似乎也错过了部署阶段。

我猜它在某种程度上与项目类型有关,没有合适的构建目标,但我不确定如何进一步跟踪。

我可以从 Azure 下载发布设置,将它们导入 Visual Studio 并通过 VS 发布,所以看起来如果 VS 路径有效,这可能是某处工具中的回归或错误,而不是不受支持的东西?

我正在使用:

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

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

And*_*ndy 5

最后,在答案和评论的帮助下(谢谢大家),我有一个 MSBuild 命令行可以部署我的 .NET Core 2.1 Function 项目:

msbuild /p:DeployOnBuild=True /p:PublishProfile=somename.pubxml /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)

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

一般 .NET Core 发布说明

  1. 如果您拼错了发布配置文件名称,它将悄悄地跳过部署(没有警告或错误)。

ASP.NET Core 和 .NET Core Functions 部署之间的差异

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

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