无法将 dotnet 核心 web api 应用程序发布到 Azure AppService
Cannot publish dotnet core web api app to Azure AppService
我需要构建、测试和部署 .net 核心 Web api 应用程序。我希望这篇标题为 Build, test, and deploy .NET Core apps 的文章能帮助我构建、测试和部署该应用程序,但出于某种原因我就是没有得到它。
我有一个简单的 .net core 3.1 web api 应用程序。
我想构建它并将其发布到 Azure AppService 上名为 'api' 的虚拟目录。
我更愿意使用 webdeploy 发布,但如果不可能的话,我会使用任何有效的方法。
我在 AzureRmWebAppDeployment 任务中遇到的错误是:
No package found with specified pattern: D:\a\s***.zip
Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.
我在这里遗漏了什么或做错了什么?
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
feedsToUse: 'select'
vstsFeed: 'Project/Feed'
includeNuGetOrg: true
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\" /p:UseWPP_CopyWebApplication=true /p:OutDir="$(build.artifactstagingdirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'SubscriptionName'
appType: 'apiApp'
WebAppName: 'MyWebAppName'
VirtualApplication: 'api'
UseWebDeploy: true
您已在 VSBuild 任务和 dotnet 发布任务中将构建工件输出到文件夹 $(Build.ArtifactStagingDirectory)
(即文件夹 D:\a\a
)。因此,对于 AzureRmWebAppDeployment 任务,您需要将 Package 参数设置为 $(Build.ArtifactStagingDirectory)/**/*.zip
。
见下文:
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'SubscriptionName'
appType: 'apiApp'
WebAppName: 'MyWebAppName'
VirtualApplication: 'api'
UseWebDeploy: true
Package: '$(Build.ArtifactStagingDirectory)/**/*.zip'
如果您没有为 AzureRmWebAppDeployment 任务指定 Package 参数。默认值为 $(System.DefaultWorkingDirectory)/**/*.zip
,这使得 AzureRmWebAppDeployment 任务在文件夹 $(System.DefaultWorkingDirectory)
(即生成代理中的文件夹 D:\a\s
)中查找部署项目,并且它的子文件夹。由于您将构建工件输出到文件夹 $(Build.ArtifactStagingDirectory)
,这就是您看到错误 No package found with specified pattern: D:\a\s***.zip
.
的原因
有关详细信息,请参阅文档 Azure App Service Deploy task。
我需要构建、测试和部署 .net 核心 Web api 应用程序。我希望这篇标题为 Build, test, and deploy .NET Core apps 的文章能帮助我构建、测试和部署该应用程序,但出于某种原因我就是没有得到它。
我有一个简单的 .net core 3.1 web api 应用程序。
我想构建它并将其发布到 Azure AppService 上名为 'api' 的虚拟目录。
我更愿意使用 webdeploy 发布,但如果不可能的话,我会使用任何有效的方法。
我在 AzureRmWebAppDeployment 任务中遇到的错误是:
No package found with specified pattern: D:\a\s***.zip
Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.
我在这里遗漏了什么或做错了什么?
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
feedsToUse: 'select'
vstsFeed: 'Project/Feed'
includeNuGetOrg: true
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\" /p:UseWPP_CopyWebApplication=true /p:OutDir="$(build.artifactstagingdirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'SubscriptionName'
appType: 'apiApp'
WebAppName: 'MyWebAppName'
VirtualApplication: 'api'
UseWebDeploy: true
您已在 VSBuild 任务和 dotnet 发布任务中将构建工件输出到文件夹 $(Build.ArtifactStagingDirectory)
(即文件夹 D:\a\a
)。因此,对于 AzureRmWebAppDeployment 任务,您需要将 Package 参数设置为 $(Build.ArtifactStagingDirectory)/**/*.zip
。
见下文:
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'SubscriptionName'
appType: 'apiApp'
WebAppName: 'MyWebAppName'
VirtualApplication: 'api'
UseWebDeploy: true
Package: '$(Build.ArtifactStagingDirectory)/**/*.zip'
如果您没有为 AzureRmWebAppDeployment 任务指定 Package 参数。默认值为 $(System.DefaultWorkingDirectory)/**/*.zip
,这使得 AzureRmWebAppDeployment 任务在文件夹 $(System.DefaultWorkingDirectory)
(即生成代理中的文件夹 D:\a\s
)中查找部署项目,并且它的子文件夹。由于您将构建工件输出到文件夹 $(Build.ArtifactStagingDirectory)
,这就是您看到错误 No package found with specified pattern: D:\a\s***.zip
.
有关详细信息,请参阅文档 Azure App Service Deploy task。