DotNetCoreCLI@2 publish不过滤项目



我的存储库中有以下文件夹结构:

  • 来源
    • 后端

      • Module1。Api =比;可发布的
        • Module1.Api.csproj和所有其他项目文件
      • 其他项目文件夹
      • Module1.Api.sln
    • 前端

      • Module1。用户界面
        • Module1.UI.csproj和所有其他项目文件
      • 其他项目文件夹
      • Module1.UI.sln

在我们的管道中,有一个步骤是为后端生成所需的发布包服务。

- task: DotNetCoreCLI@2
displayName: DotNet Publish
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory) --runtime win-x64 --self-contained true'
zipAfterPublish: False
projects: 'Source/Backend/**/*.csproj' ##FILTER BACKEND ONLY

然而,项目是一个通配符,只发布后端(projects: 'Source/Backend/**/*.csproj'),它仍然运行dotnet publishModule1.UI.csproj这是错误的,因为它是在Source/Frontend文件夹。

我错过什么了吗?

真正有用的是下面的注释:

PublishWebProjects属性必须设置为false允许选择一个特定的项目。如果设置为true, projects属性的值被忽略,所有找到的webprojects都会被发布。

见:https://stackoverflow.com/a/53395041

请使用工作目录

- task: DotNetCoreCLI@2
displayName: DotNet Publish
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory) --runtime win-x64 --self-contained true'
zipAfterPublish: False
projects: '**/*.csproj' ##FILTER BACKEND ONLY
workingDirectory: 'Source/Backend'

最新更新