在Azure Web App的应用程序设置中,您可以配置多个虚拟目录和应用程序:
我有两个Web应用程序项目的解决方案。一个是UI,一个是Web API项目。我希望我在Visual Studio Team Services中的持续集成构建能够将UI部署到站点根目录,并将Web API部署到webapi虚拟目录。
在旧的基于XAML的构建定义中,我的解决方案是使用发布配置文件。然后我会传递MSBuild参数,以便我的发布配置文件用于部署两个应用程序(my approach is explained in this question/answer)。
如果我想手动发布,这些发布配置文件仍然有用;它就像让一个发布配置文件包含<DeployIisAppPath>mysite</DeployIisAppPath>
而另一个包含<DeployIisAppPath>mysite/webapi</DeployIisAppPath>
一样简单。
但使用新的2015 Team Foundation Build部署步骤更加困难。我现在所拥有的是:
除了webapi部署之外,这种方法非常有效。这一步失败了,抱怨说:
找不到网站mysite / webapi。请指定有效的网站名称。
显然mysite/webapi
不是我指定要部署的虚拟目录的方式。但我无法弄清楚我应该如何在Azure Web App部署步骤中指定它。有人知道怎么做吗?
答案 0 :(得分:2)
Microsoft发布了一个允许虚拟目录的新AzureRM Web App Deployment task。
答案 1 :(得分:1)
最后,我意识到了一种在短期内实现我想要的明显方法。目前我刚刚在构建中禁用了Azure部署步骤,并修改了实际构建步骤以不发布Web包,而是使用发布配置文件直接部署到Azure。
因此,Visual Studio Build步骤中的MSBuild参数现在如下所示:
/p:DeployOnBuild=true /p:SkipInvalidConfigurations=true /p:PublishProfile=mysiteprofile/p:Password=paswordhashfor$mysite
在Publish-AzureWebSiteProject PowerShell cmdlet允许指定虚拟目录之前,这似乎是我必须要做的。