我在执行步骤https://stackoverflow.com/a/53616516/10979521时在azure Web服务中部署有角度的通用应用程序时遇到问题,但出现错误
##[error]Error: Publish using webdeploy options are supported only when using Windows agent.
我猜该问题是在我的应用程序服务设置中创建应用程序服务时发生的 ( *发布(代码) *运行时堆栈(.NET Core 2.2) *操作系统(Windows) )
# Node.js with Angular
# Build a Node.js project that uses Angular.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: |
npm install -g @angular/cli
npm install
npm run build:ssr
displayName: 'build the project'
- task: CopyFiles@2
displayName: 'Copy dist files to staging'
inputs:
SourceFolder: '$(Build.SourcesDirectory)/dist'
TargetFolder: '$(Build.ArtifactStagingDirectory)/app/dist'
- task: CopyFiles@2
displayName: 'Copy server.js to the root'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)/app/dist'
Contents: server.js
TargetFolder: '$(Build.ArtifactStagingDirectory)/app'
- task: DeleteFiles@1
displayName: 'Delete the dist/server.js'
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)/app/dist'
Contents: server.js
- task: AzureRmWebAppDeployment@3
displayName: 'Azure App Service Deploy: website'
inputs:
azureSubscription: 'my subscription'
WebAppName: 'my website'
Package: '$(Build.ArtifactStagingDirectory)/app'
GenerateWebConfig: true
WebConfigParameters: '-Handler iisnode -NodeStartFile server.js -appType node'
UseWebDeploy: true
RemoveAdditionalFilesFlag: true
答案 0 :(得分:1)
编辑:
在输入此内容后,我意识到您的问题可能是您有“ UseWebDeploy:true”,也许可以通过将其设置为false来解决您的问题。下面是从发布管道中的相同任务设置中截取的屏幕截图。
我仍然认为,最好的选择是从构建管道中删除部署任务,如下所述,因为构建管道并非旨在以这种方式使用。但这取决于您。
原始答案:
从构建管道中删除此部分:
- task: AzureRmWebAppDeployment@3
displayName: 'Azure App Service Deploy: website'
inputs:
azureSubscription: 'my subscription'
WebAppName: 'my website'
Package: '$(Build.ArtifactStagingDirectory)/app'
GenerateWebConfig: true
WebConfigParameters: '-Handler iisnode -NodeStartFile server.js -appType node'
UseWebDeploy: true
RemoveAdditionalFilesFlag: true
在build.yml文件的末尾添加一个发布步骤。这将使您的发布管道可以从构建中提取工件。
- task: PublishBuildArtifacts@1
设置发布管道以部署您的构建。
“软件包或文件夹”选项的默认值可能不正确。您可以使用右侧的3点导航并选择正确的文件夹。如果您单击此按钮却看不到任何内容,则很可能是因为您尚未通过上述“ PublishBuildArtifact @ 1”更改开始构建。
如果您遇到任何问题,可以滚动到任务顶部并单击“查看YAML”,以验证任务是否正确设置。然后,您可以将其与原始Yaml进行比较。
希望这会有所帮助。