描述
我们在一个基于 MVC4/Umbraco 的当前项目中,使用 Azure 网站来托管它。
我们正在使用 SCM_BUILD_ARGS 在不同的构建设置之间进行更改,具体取决于我们部署到 Azure 中的哪个站点(测试和生产)。
这是通过在 UI 中定义应用设置来完成的:
SCM_BUILD_ARGS = /p:环境=测试
早些时候我们使用 Bitbucket 集成进行部署,在这里这个设置就像一个冠军。
我们现在已经切换到使用 Git 部署,在测试通过时从我们的构建服务器推送更改。但是当我们这样做时,我们会得到一个可爱的错误。
“MSB1008:只能指定一个项目。”
尝试从 Azure 上的 UI 重新部署相同的失败部署是可行的。
经过一些试验和错误后,我结束了进入 deploy.cmd 并%SCM_BUILD_ARGS%
在脚本中输出值。看起来/
从 SCM_BUILD_ARGS 中删除了,但仅在使用 Git 部署时,而不是 Bitbucket 集成或从 UI 重新部署时。
解决方法
作为解决方法,我现在/
在 .deploy.cmd 脚本前面添加了一个%SCM_BUILD_ARGS%
,但这当然会破坏重新部署,因为我们//p:Environment=Test
在 MSBuild 命令中%SCM_BUILD_ARGS%
插入了 的值。
:: 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%
)
问题
任何人都知道这个问题的更好解决方案,或者它可能是 Kudu 中的一个错误?我们希望从 Git 部署和重新部署都能正常工作。