Azure Devops更改部署文件夹

Azure Devops更改部署文件夹,azure,asp.net-core,azure-devops,Azure,Asp.net Core,Azure Devops,我正在使用Azure Devops自动构建和部署asp.net core 3.1 web应用程序到Azure应用程序服务 问题是它正在将应用程序部署到奇怪的文件夹。而不是它所在的wwwroot文件夹 /home/site/wwwroot/Content/D_C/a/1/s/ExampleFolder/ExampleFolder2/ExampleFolder3/obj/Staging/netcoreapp3.1/PubTmp/Out 如果有必要的话,应用程序服务在Linux上 如何将其修复/更改到

我正在使用Azure Devops自动构建和部署asp.net core 3.1 web应用程序到Azure应用程序服务

问题是它正在将应用程序部署到奇怪的文件夹。而不是它所在的wwwroot文件夹
/home/site/wwwroot/Content/D_C/a/1/s/ExampleFolder/ExampleFolder2/ExampleFolder3/obj/Staging/netcoreapp3.1/PubTmp/Out
如果有必要的话,应用程序服务在Linux上


如何将其修复/更改到主文件夹中?

您应该与我们共享管道,否则,我们无法告诉您必须更改/修复的内容

但是,下面是一个使用该任务将.NET Core 3.1应用程序部署到Azure Web应用程序的示例

trigger:
  branches:
    include:
    - master

stages:
- stage: Build
  jobs:
  - job: 'BuildArtifact'
    pool:
      vmImage: 'ubuntu-latest'
    steps:

    - task: UseDotNet@2
      inputs:
        packageType: sdk
        version: 3.1.x

    - task: DotNetCoreCLI@2
      displayName: Build
      inputs:
        command: 'build'
        projects: PATH/TO/YOUR/Project.csproj
        arguments: --output $(System.DefaultWorkingDirectory)/publish_output --configuration Release

    - task: ArchiveFiles@2
      displayName: 'Archive files'
      inputs:
        rootFolderOrFile: '$(System.DefaultWorkingDirectory)/publish_output'
        includeRootFolder: false
        archiveType: zip
        archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
        replaceExistingArchive: true

    - publish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      artifact: drop

- stage: Deploy
  dependsOn: Build
  condition: succeeded()
  jobs:
  - deployment: 'Deploy'
    pool:
      vmImage: 'ubuntu-latest'
    environment: Development
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureWebApp@1
            displayName: Azure Web App Deploy
            inputs:
              azureSubscription: YourAzureSubscription
              appName: YourAppName
              package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip
              appType: webAppLinux

我通过创建使用
dotnet
代理而不是visualstudio构建代理的新管道解决了我的问题。在部署到Linux应用程序服务时,请确保使用CLI。例如,您可以看到@martin brandl answer管道

您也可以参考这个Devops SE问题。问题是类似的:

我在看这个事实:

我有一个ASP.NET Core 3.0应用程序,在Azure DevOps中有完整的CI/CD设置。该应用程序托管在Ubuntu 18.04服务器上

因此,我可以放心地假设您正在开发ASP.NETCore3.0应用程序,该应用程序将托管在Ubuntu中。任何.NET Core 3.0(或更高版本)应用程序都意味着您应该依赖
dotnet构建
,而不是使用VSBuild

此外,您还声明将在Ubuntu 18.x上托管该应用程序,然后您还应该运行在Ubuntu上运行的Azure DevOps代理上的构建。这意味着您只能在
DotNetCoreCLI@2
task,因为
VSBuild
task仅在基于Windows的代理上运行,而不是在Ubuntu上运行,它旨在编译.NET Framework和.NET Core以外的其他平台

请查阅DotNetCoreCLI@2任务在

使用
dotnet build
后,使用
dotnet publish
发布工件。它更简单,也是发布.NET核心应用程序的最佳方式

我的回购协议中有
dotnet build
dotnet publish
的示例用法:


谢谢你的回复!它正在成功部署,所以我认为唯一的问题是部署的路径?你能告诉我这是什么配置吗?或者它不像我想的那么直截了当@martin brandlin在部署中,您只指定包的路径。那么您的错误可能在构建过程中?如何构建应用程序=这是构建解决方案YAML。如果您还需要什么,请告诉我。@AlexanderPetkov为什么不使用.net core cli来构建项目?这可能会解决您的问题。在发布工件中有“发布路径”设置。你认为这就是我需要改变的吗?