You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Pipelines中DotNetCoreCLI@2发布任务忽略Projects设置

解决DotNetCoreCLI@2任务指定发布项目失效的问题

问题根源

DotNetCoreCLI@2任务默认开启publishWebProjects: true时,会自动扫描仓库内的Web项目并优先发布,当存在Razor类库这类易被误判为可发布目标的项目时,会覆盖你手动指定的projects参数,导致发布错项目。

可行解决方案

1. 关闭自动扫描,强制指定项目

这是最直接的解决方式,手动关闭publishWebProjects自动扫描功能,确保任务严格遵循你指定的项目路径:

- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: false
    projects: '**/Squil.Web.csproj'
    arguments: '-c Release -o $(Build.ArtifactStagingDirectory)'

如果项目文件在仓库根目录下,直接写Squil.Web.csproj即可,无需通配符。

2. 精准锁定项目路径

避免使用模糊的通配符,直接写项目文件的精确相对路径,比如项目在src/Web目录下:

- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    projects: 'src/Web/Squil.Web.csproj'
    arguments: '-c Release -o $(Build.ArtifactStagingDirectory)'

3. 标记类库不可发布

在Squil.Razor类库的.csproj文件中添加配置,明确告知任务该项目不可发布,从根源避免误识别:

<PropertyGroup>
  <IsPublishable>false</IsPublishable>
</PropertyGroup>

同时确认Squil.Web项目的.csproj里保留:

<PropertyGroup>
  <IsPublishable>true</IsPublishable>
</PropertyGroup>

验证方法

修改配置后触发构建,查看任务日志中的dotnet publish命令行,确认目标路径指向Squil.Web.csproj,再检查发布产物目录是否为Web项目的输出文件。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:30:47