我猜测它已部署错误的地方或其他任何地方。
我希望有人会友善地救我不发疯。 the thanks很多
问题的原因可能是VSBuild任务生成的ZIP软件包(默认参数)将具有错误的文件结构。它将包含其他文件夹路径。例如:
- 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)'
要删除zip软件包中的其他文件夹路径,我们需要更改VSBuild任务参数:
VSBUILD参数样本:
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
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: AzureRmWebAppDeployment@5
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'namesub'
appType: 'webApp'
WebAppName: 'nameoftheapp'
packageForLinux: '$(build.artifactStagingDirectory)/*.zip'
我们可以使用缩放文件任务将所有输出文件汇总。
然后您可以将新的ZIP软件包部署到Azure Web应用程序并检查是否可以工作。
对于更详细的信息,您可以参考以下文档:部门网络应用程序通过MSBUILD任务创建的Web软件包(默认参数)具有嵌套的文件夹结构,只能通过Web Deploy。
另一方面,您还可以使用DotNet发布任务直接生成ZIP软件包。有关更多详细信息,您可以参考以下文档:
dotnet发布任务 yaml样品:
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: DotNetCoreCLI@2
displayName: 'Publish Web App'
inputs:
command: 'publish'
publishWebProjects: false
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: AzureRmWebAppDeployment@5
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'namesub'
appType: 'webApp'
WebAppName: 'nameoftheapp'
packageForLinux: '$(build.artifactStagingDirectory)/*.zip'