DevOps 将 Azure Web Apps 部署到 Linux 容器中的 wwwroot/Content/D_C/a/1/s/

问题描述 投票:0回答:1

我拥有几乎最简单的 .Net 8 项目管道/发布。

.zip 文件有一个

Content/D_C/a/1/s/
,由于它部署到 Linux 容器,因此不会尝试解开它。 我尝试将构建主机更改为 ubuntu-24.04,但它说我没有安装 mono。 我认为这可能是我需要解决的实际问题。 我在核心应用程序中看不到任何针对 .Net Framework 的地方。 我所有的项目都只针对 net8.0。 那么为什么它需要单声道呢? 但无论哪种方式,这都应该可以与 Windows VM 一起构建;对吗?

这在某种程度上描述了我的问题: Azure Web 应用程序已部署,但 wwwroot 文件夹中的内容错误

azure-devops
1个回答
0
投票

使用 VSBuild 任务模板默认参数时,我可以重现相同的问题。

例如:

- task: VSBuild@1
  displayName: 'Build solution'
  inputs:
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'

enter image description here

要删除 zip 包中的其他文件夹路径,我们需要更改 VSbuild 任务参数:

VSbuild 参数示例:

/p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactStagingDirectory)\\"

构建管道示例:

steps:
- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: '**\*.sln'

- task: VSBuild@1
  displayName: 'Build solution'
  inputs:
    msbuildArgs: '/p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactStagingDirectory)\\"'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'

- task: ArchiveFiles@2
  displayName: 'Archive $(build.artifactStagingDirectory)'
  inputs:
    rootFolderOrFile: '$(build.artifactStagingDirectory)'
    includeRootFolder: false

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
 

我们可以使用存档文件任务来压缩所有输出文件。

在这种情况下,zip 文件中不会包含其他文件夹路径。

结果:

enter image description here

然后当我们将包部署到Web App时,文件将被部署到

wwwroot/
文件夹中。

更详细的信息,您可以参考这个文档:Deloy Web App

通过 MSBuild 任务(使用默认参数)创建的 Web 包具有嵌套文件夹结构,只能通过 Web Deploy 正确部署。

© www.soinside.com 2019 - 2024. All rights reserved.