Azure Devops Pipelines dotnet发布任务忽略项目设置



我有一个repo,里面有几个dotnet项目,其中两个是web项目,我需要指定发布哪个。

我的yaml文件是:

trigger:
- master
pool:
vmImage: ubuntu-latest
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'publish'
projects: '**/Squil.Web.csproj'
arguments: '-o $(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1    
displayName: 'Publish Artifact: web'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'

只要我只有一个web项目,类似的东西就会起作用,但在将大多数与Blazor相关的东西分解到另一个项目Squil.Razor中后,它就不再起作用了:发布任务总是选择那个,那就是Razor类库。

我还尝试使用'Squil.Web'作为projects参数,但无论我在那里放什么,它都会被忽略。

几个小时以来,我一直在为这件事烦恼。我发现了一个相关的问题,从中我得到了语法'**/Squil.Web.csproj',但这对我来说也不起作用。

我知道我可以使用dotnet命令行,但我宁愿使用任务。

这是.NET 6。

还有什么可以尝试的?

我发现了问题所在。

除非明确指定了publishWebProjects: false,否则会忽略projects

不是我书中最好的默认值。

即使publishWebProjects设置为false,也参与了我的工作,但项目仍然包括在内。

- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
publishWebProjects: false
projects: |
**/Sample.Web.Customer.csproj
**/Sample.Web.Admin.csproj
**/Sample.ServiceBus.csproj
arguments: "--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory) --no-build"
zipAfterPublish: True

最新更新