我无法使用文件夹部署DevOps,这给了我这个错误:
[错误]错误:找不到具有指定模式的软件包: d:\ a \ 1 \ a * .deploy.cmd
检查任务中是否提到了软件包 在构建或上一阶段作为工件发布,并且 已下载到当前职位。
Azure App Service部署任务文档中有关Package参数的说明如下:
程序包或包含App Service的文件夹的文件路径 MSBuild生成的内容,或压缩的zip或war文件中的内容。
这是我的发布任务:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: false
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: false
modifyOutputPath: true
projects: |
src/Company/Project.csproj
和我的部署任务:
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'PublishProfile'
PublishProfilePath: '$(System.DefaultWorkingDirectory)/src/Company/Properties/PublishProfiles/WebDeploy.pubxml'
PublishProfilePassword: '$(password)'
Package: '$(Build.ArtifactStagingDirectory)/Company'
为什么要查找deploy.cmd?我在做什么错了?
答案 0 :(得分:1)
错误:找不到指定格式的软件包:d:\ a \ 1 \ a * .deploy.cmd
根据错误消息,此问题的根本原因可能是您的路径中没有这样的文件(xxx.deploy.cmd)。
“ Dotnet发布”任务将不会生成此文件。
要解决此问题,您需要添加“ Dotnet构建”任务。此任务将生成必要的文件(例如deploy.cmd):
同时,您还需要在参数字段中添加配置参数。
/p:DeployOnBuild=true /p:WebPublishMethod=package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)
这里是一个例子:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
projects: '**/*.csproj'
arguments: '/p:DeployOnBuild=true /p:WebPublishMethod=package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)'
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
....
然后将添加xxx.deploy.cmd。
希望这会有所帮助。
答案 1 :(得分:0)
请尝试
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'PublishProfile'
PublishProfilePath: '$(System.DefaultWorkingDirectory)/src/Company/Properties/PublishProfiles/WebDeploy.pubxml'
PublishProfilePassword: '$(password)'
Package: '$(Build.ArtifactStagingDirectory)/Company/*'
区别在于Package
输入。