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

Azure DevOps .NET 5发布OrchardCore结果与Visual Studio本地发布差异问题

问题描述

我尝试在Azure DevOps中发布OrchardCore网站,本地Visual Studio构建发布后站点运行正常,但从Azure DevOps发布的结果存在差异:包含少量额外文件,dll文件大小普遍存在数KB的差距,尝试调整多种Azure DevOps配置均无效。
实际表现为站点提示部分css、js文件不存在,使用DotPeek反编译可见对应文件确实存在,但浏览器无法访问。同环境下另一个Orchard Core Theme项目可以正常提供css、js资源访问,将UAT环境的故障IIS站点指向本地发布包即可正常运行,排除IIS配置问题,确定问题与DevOps的yml配置有关,不确定当前使用的VSBuild、MSBuild、DotNetCoreCLI等任务对象是否正确。
当前使用的yml配置文件如下:

parameters:
# 此yml为模板文件,流水线脚本会传入csproj文件的路径
- name: solution 
  type: string
  default: ''
   
steps:

- script: echo ${{ parameters.solution }}
          echo $(System.DefaultWorkingDirectory)


- task: NuGetToolInstaller@1
  inputs:
    versionSpec: 5.8.x

- task: UseDotNet@2
  displayName: '使用 .NET Core SDK 5.0.x'
  inputs:
    packageType: 'sdk'
    version: '5.0.x'

- task: DotNetCoreCLI@2
  displayName: '还原NuGet包'
  inputs:
    command: restore
    projects: '**/*.csproj'
    includeNugetOrg: true

- task: DotNetCoreCLI@2
  displayName: '构建项目'
  inputs:
    command: publish
    zipAfterPublish: true
    publishWebProjects: false
    projects: '${{ parameters.solution }}'
    arguments: '-c $(buildConfiguration) -o $(build.artifactStagingDirectory)'
    #arguments: '-c $(buildConfiguration) -o $(build.artifactStagingDirectory) -f net5.0 --no-restore'

- task: PublishBuildArtifacts@1
  displayName: '发布构建产物 (drop)'
  inputs:
    PathToPublish: '$(build.artifactstagingdirectory)'
    ArtifactName: 'drop'
解决方案

经确认问题与构建流水线完全无关。Git仓库同一路径下同时存在wwwroot和WWWroot两个文件夹,但仅wwwroot会被拉取到开发设备。推测构建过程优先识别了大写的WWWroot文件夹,导致部分js、css资源无法访问,也解释了站点一直返回旧版本资源的现象。即便使用dotPeek反编译也未快速定位问题,因为正确版本的文件实际存在,只是未注意到额外的WWWroot文件夹,OrchardCore在构建时优先读取了该文件夹。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:39:02