我有一个Azure DevOps Pipeline,其中包括一个用于部署ASP.NET Core 3.1项目的Azure App Service Deploy任务(AzureRmWebAppDeployment
):
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'Azure Subscription(01234567-89ab-cdef-0123-456789abcdef)'
appType: 'webApp'
WebAppName: 'MyStagingSite'
packageForLinux: '$(Build.ArtifactStagingDirectory)/**/*.zip'
enableCustomDeployment: true
DeploymentType: 'webDeploy'
enableXmlTransform: false
enableXmlVariableSubstitution: true
RemoveAdditionalFilesFlag: false
但是,Azure App Service目标包含几个预先建立的文件夹中的文件,这些文件的管理与连续交付过程无关。我们想使用删除目标位置的其他文件标志(RemoveAdditionalFilesFlag
),同时保持这些文件夹不变。
免责声明:我认为这不是最佳实践,将来,我们会将这些文件移至单独的存储位置。在此之前,我想找到一个可以解决此问题的解决方案。
在Visual Studio 2019]中,我们通过使用MsDeploySkipRules
文件中的csproj
从发布过程中排除这些文件来实现此目的:
<Project Sdk="Microsoft.NET.Sdk.Web"> … <ItemGroup> <MsDeploySkipRules Include="CustomSkipFolder"> <ObjectName>dirPath</ObjectName> <AbsolutePath>wwwroot\\Uploads</AbsolutePath> </MsDeploySkipRules> </ItemGroup> </Project>
此方法对于Visual Studio效果很好,并因其Web部署发布过程而倍受赞誉。但是,即使使用“ Web Deploy”部署方法(
AzureRmWebAppDeployment
),这些规则似乎也不受DeploymentType
任务的约束。使用
MsDeploySkipRules
任务时是否有办法兑现AzureRmWebAppDeployment
?如果不是,是否有办法提供在部署过程中应跳过或忽略的文件夹列表?或者,如果发布到Azure App Service时是否还有另一个任务允许这些选项之一?
注意:
我也将其发布到了DevOps Beta,但是由于该站点尚未达到临界数量,因此我将其交叉发布在这里。我有一个Azure DevOps管道,其中包括用于部署ASP.NET Core 3.1项目的Azure应用程序服务部署任务(AzureRmWebAppDeployment):-任务:AzureRmWebAppDeployment @ 4输入:...
使用AzureRmWebAppDeployment任务时是否有办法遵守MsDeploySkipRules?