我们使用.Net后端开发了Azure Mobile服务。我们可以从VisualStudio发布它,但是我们希望自动化从构建机器发布服务的过程。
我们希望将构建和发布流程分开,因此结合构建和发布所述 there 的解决方案对我们来说还不够。
Azure Mobile Services是否有任何powershell /命令行工具,类似于New-AzureDeployment / Set-AzureDeployment(参考: "Deploying cloud services to Azure with Powershell")?
答案 0 :(得分:2)
对于Azure移动服务,您可以通过git进行部署 - 该机制是您将“生产”代码检查到git存储库中。这可以作为持续集成测试的一部分自动执行 - 请参阅以下演练:https://azure.microsoft.com/en-us/documentation/articles/mobile-services-store-scripts-source-control/。这可能是您自动化的最佳选择。
您还可以使用azure命令行工具。有关详细信息,请参阅以下演练:https://azure.microsoft.com/en-us/documentation/articles/mobile-services-manage-command-line-interface/
答案 1 :(得分:0)
我终于设法使用MSDeploy.exe工作了。我发现使用“/ p:DeployOnBuild = true”运行msbuild,但没有“/ p:PublishProfile”实际上并不发布移动服务,而是创建包含内容的文件夹,可以使用msdeploy发布。
使用msdeploy发布移动服务应遵循的步骤:
在构建过程中:
在发布过程中:
@echo off
if "%MSDeployPath%" == "" (
for /F "usebackq tokens=1,2,*" %%h in (`reg query "HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy" /s ^| findstr -i "InstallPath"`) do (
if /I "%%h" == "InstallPath" (
if /I "%%i" == "REG_SZ" (
if not "%%j" == "" (
if "%%~dpj" == "%%j" (
set MSDeployPath=%%j
))))))
"%MSDeployPath%"\msdeploy.exe -verb:sync -source:contentPath=<path_to_PackageTmp_folder> -dest:ContentPath=<mobile_service_site>,PublishSettings=<path_to_downloaded_publishsettings_file>,AuthType='Basic' -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension
或者,可以将提到的PackageTmp文件夹的内容压缩为zip并将发布行更改为:
"%MSDeployPath%"\msdeploy.exe -verb:sync -source:package=<path_to_zip_file> -dest:ContentPath=<mobile_service_site>,PublishSettings=<path_to_downloaded_publishsettings_file>,AuthType='Basic' -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension
有几次我必须在发布后重新启动移动服务。可以使用Azure CLI轻松完成。
我希望以上帮助那些想要自动化移动服务部署过程的人: - )
帮助我完成所有工作的文章:Azure Mobile Service deployment with Team City part 4. Deploying Azure Mobile Services