Azure功能 - 错误MSB4057:目标" MsDeployPublish"在项目中不存在

时间:2018-03-20 00:31:18

标签: azure msbuild azure-functions

我正在尝试使用" msbuild" 构建azure功能应用项目 -  为VS 2017构建工具 - 来自PowerShell(https://www.visualstudio.com/downloads/?q=msbuild

命令 -

            $pubxmlFilePath = (Get-Location).Path + "\" + "functionapp.pubxml"        

            $msbuildParams = '/t:MsDeployPublish /P:Configuration=Release `
                              /P:Configuration="Any CPU" `
                              /p:PublishProfile=' +$pubxmlFilePath + ' `
                              /p:Password=password'    

            $deployFunctionApp = '$msbuild' +" " + $functionAppProjectPath + `
                                  " " + $msbuildParams

            Invoke-Expression "& $deployFunctionApp"

但它抛出以下异常 -

错误MSB4057:目标" MsDeployPublish"项目中不存在

参考链接:

https://social.msdn.microsoft.com/Forums/azure/en-US/0f0f4bf0-7e9b-40e5-836a-11c97357a2d1/deploy-azure-functions-via-cli?forum=AzureFunctions

你能帮帮我吗?

谢谢, 苏拉杰

1 个答案:

答案 0 :(得分:2)

我按照您的参考链接,使用c#Azure功能对您的脚本进行了一些测试。它适用于我。

我更改了参数值,发现只有两个参数导致您遇到异常。以下是参数:

  • $functionAppProjectPath 应该为它指定项目文件所在的路径。(对于c#,.sln和.csproj文件的路径都可以)。
  • $pubxmlFilePath确保文件名正确无误。此外,属性/P:PublishProfile只需要文件名,文件夹路径是不必要的。就我而言,即使文件夹路径不正确,构建也会成功。

如果它不适合您,您可以将/t:MsDeployPublish更改为/P:DeployOnBuild=True。这也适用于我。

您可能还需要将/P:Configuration="Any CPU"更改为/P:Platform="Any CPU",因为在我这方面又导致了另一个例外 - error MSB4126: The specified solution configu ration "Any CPU|Any CPU" is invalid.