Azure网站Git部署在SCM_BUILD_ARGS中删除"/"

Ras*_*mus 3 azure azure-web-sites kudu

描述

我们目前正在使用基于MVC4/Umbraco的项目,使用Azure网站来托管它.

我们使用SCM_BUILD_ARGS在不同的构建设置之间进行更改,具体取决于我们部署到Azure的哪个站点(Test and Prod).

这是通过在UI中定义应用程序设置来完成的:

SCM_BUILD_ARGS =/p:环境=测试

之前我们使用Bitbucket Integration进行部署,这里的设置就像一个冠军.

我们现在已经切换到使用Git Deployment,在测试通过后从我们的构建服务器推送更改.但是当我们这样做时,我们会得到一个可爱的错误.

"MSB1008:只能指定一个项目."

尝试从Azure上的UI重新部署相同的失败部署.

经过一些试验和错误,我结束了进入deploy.cmd并输出%SCM_BUILD_ARGS%脚本中的值.它似乎/从SCM_BUILD_ARGS中删除,但仅在使用Git部署时,而不是Bitbucket Integration或从UI重新部署.

解决方法

作为解决方法我现在已经添加了一个/到前面的deploy.cmd脚本%SCM_BUILD_ARGS%,但这当然会中断重新部署,因为我们//p:Environment=Test%SCM_BUILD_ARGS%插入值时在MSBuild命令中有.

:: 2. Build to the temporary path
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
:: Added / to SCM_BUILD_ARGS
  %MSBUILD_PATH% "%DEPLOYMENT_SOURCE%\www\www.csproj" [....]  /%SCM_BUILD_ARGS%
) ELSE (
  %MSBUILD_PATH% "%DEPLOYMENT_SOURCE%\www\www.csproj" [....] /%SCM_BUILD_ARGS%
)
Run Code Online (Sandbox Code Playgroud)

任何人都知道这个问题的更好的解决方案或者它可能是Kudu的一个错误?我们希望从Git和Redeploy部署工作.

小智 8

你能尝试从"/"改为" - "吗?例如,从AppSettings的/p:Environment=Test-p:Environment=Test,看看是否有帮助.