对于类似的情况,在我的每个 Web 项目的后期构建中,我为每个项目运行来自 Post Build 事件的脚本,然后将所有文件复制到单独的部署文件夹中。(如果有的话,它首先删除那里的所有文件,并进行任何更改,例如清理空目录或无用目录)
第 1 步 - 创建后期构建脚本
我把我的作为一个批处理文件,但你可以使用任何东西。
在这个脚本中,我有类似于
RMDIR "C:\Visual Studio 2010\Projects\Promotion\Deployment\FacebookApp" /S /Q
xcopy "C:\Visual Studio 2010\Projects\Promotion\FacebookApp" "C:\Visual Studio 2010\Projects\Promotion\Deployment\FacebookApp\" /s /e
RMDIR "C:\Visual Studio 2010\Projects\Promotion\Deployment\FacebookApp\obj" /S /Q
RMDIR "C:\Visual Studio 2010\Projects\Promotion\Deployment\FacebookApp\Styles" /S /Q
将脚本添加到您的构建后事件

第 2 步 - 更改 Azure 项目以指向新文件夹
然后我将我的 Azure 项目设置为指向其中包含项目的部署文件夹,而不是直接指向开发文件夹。

在 ServiceDefinition.csdef 这里是我的例子
<Site name="FacebookApp" physicalDirectory="..\Deployment\FacebookApp">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="sub.domain.com" />
<Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="sub.domain.com" />
</Bindings>
</Site>
(以防万一您想知道 Endpoint1 是端口 80 常规 http 而 Endpoint2 是端口 443 https)
我现在要做的就是重建我的项目,然后在 Azure 项目上点击发布,一切都完成了。等待 30 分钟后部署和更新 :)