Azure Devops更改部署文件夹
我正在使用Azure Devops自动构建和部署asp.net core 3.1 web应用程序到Azure应用程序服务 问题是它正在将应用程序部署到奇怪的文件夹。而不是它所在的wwwroot文件夹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上 如何将其修复/更改到
/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来构建项目?这可能会解决您的问题。在发布工件中有“发布路径”设置。你认为这就是我需要改变的吗?