DotNetCoreCLI@2 publish任务项目过滤规则不生效问题咨询
问题根因
DotNetCoreCLI@2任务的publishWebProjects参数优先级高于projects参数:当你设置publishWebProjects: True时,任务会忽略你配置的projects过滤规则,自动递归扫描整个仓库中所有使用Web SDK的.csproj项目执行发布操作,所以Frontend目录下的Web项目也被命中。
解决方案
直接修改任务配置,将publishWebProjects设为False即可让你配置的Source/Backend/**/*.csproj过滤规则生效,修改后的配置如下:
- task: DotNetCoreCLI@2 displayName: DotNet Publish inputs: command: publish publishWebProjects: False # 修改为False,启用projects参数的过滤规则 arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory) --runtime win-x64 --self-contained true' zipAfterPublish: False projects: 'Source/Backend/**/*.csproj' # 仅过滤Backend目录的规则将正常生效
如果需要更高的过滤精度,避免Backend目录下非Web项目被误发布,可以进一步调整projects参数,比如直接指定目标项目路径Source/Backend/Module1.Api/**/*.csproj,或者直接指定Backend目录的解决方案文件Source/Backend/Module1.Api.sln。
内容的提问来源于stack exchange,提问作者hwcverwe
相关产品推荐
相关产品推荐

