升级DevExpress 23.2.4后Azure Pipeline部署dxHtmlEditor分部视图加载冻结
检查NuGet还原策略
确认Azure DevOps的NuGet还原任务是否启用了--no-cache或--force参数。DevExpress控件依赖特定版本的资源文件,若构建时使用旧缓存包,可能导致资源版本不匹配。尝试添加--force参数强制拉取最新23.2.4版本的包。对比本地与构建的输出文件差异
用文件对比工具(如Beyond Compare)检查VS本地发布和Azure DevOps构建的输出文件:- 核对
wwwroot/devextreme下的js、css文件是否完整,版本是否为23.2.4 - 对比
bin/Views下的.cshtml.dll文件,确认Azure DevOps未对视图文件做额外压缩或修改 - 检查
web.config/appsettings.json中DevExpress资源加载相关配置是否被构建任务篡改
- 核对
排查视图编译选项差异
检查Azure DevOps构建任务是否启用了预编译视图,而本地发布未启用(或反之)。dxHtmlEditor依赖Razor动态编译逻辑,预编译过程可能存在兼容性问题。尝试将构建任务中的<MvcBuildViews>配置设为false,或对齐本地与构建的编译参数。开启构建/发布的详细日志
将构建任务的日志级别设为Diagnostic,重点查看:- DevExpress组件的构建输出,是否有被忽略的警告或错误
- 视图编译阶段日志,是否存在dxHtmlEditor相关视图的编译异常
- 文件复制日志,确认所有DevExpress资源文件都被正确部署到目标服务器
验证构建代理的环境一致性
确认Azure DevOps构建代理的VS2022版本(包括补丁)与本地环境完全一致。DevExpress控件对VS补丁可能存在依赖,代理环境的版本差异可能导致构建输出异常。可在构建任务中添加步骤,输出dotnet --version和devenv /version验证版本。清理构建缓存
清理Azure DevOps管道的NuGet缓存、构建输出缓存,重新运行构建。旧缓存文件可能与新版本DevExpress组件冲突,引发加载异常。检查发布后的文件权限
确认Azure DevOps发布任务是否正确设置了目标服务器上文件的读取权限,特别是wwwroot/devextreme下的资源文件。权限不足可能导致浏览器加载资源阻塞,引发页面冻结。
内容的提问来源于stack exchange,提问作者tvbRPTI2754

