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

Visual Studio 2022 & ASP.NET Core 6 MVC:路径非法字符问题排查求助

定位.NET项目构建“Illegal characters in path”故障的步骤

1. 捕获详细构建日志,定位具体非法路径

默认构建日志不会显示触发错误的具体路径,你需要开启详细日志获取关键信息:

  • Visual Studio内:打开「工具」→「选项」→「项目和解决方案」→「构建并运行」,将MSBuild的构建日志详细级别设为「详细」或「诊断」,重新构建后查看日志完整错误栈,找到包含非法字符的具体文件路径。
  • 命令行构建:在项目根目录执行dotnet build -v diag,日志会输出所有构建细节,搜索Illegal characters in path附近内容,定位问题路径。

2. 排查近两周新增/修改的静态资源与JS模块

错误源自Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets,说明问题和静态资源、JS模块的路径/文件名相关:

  • 检查近两周新增的静态文件(图片、JS、CSS等)、Razor页面/组件引用的资源,是否包含非法字符:比如全角符号、空格、?*<>:"|\/这类Windows路径禁止字符,或非ASCII特殊字符。
  • 打开项目的.csproj文件,查找<StaticWebAssets>相关手动配置项,确认是否存在路径拼写错误或非法字符。

3. 排查Visual Studio的缓存与扩展干扰

  • 清理VS组件缓存:删除路径%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ComponentModelCache下的所有文件,重启VS后尝试构建。
  • 禁用近期安装的VS扩展:尤其是和前端构建、静态资源打包、Razor组件相关的扩展,逐个禁用后测试构建,排查是否为扩展导致的路径解析异常。

4. 验证.NET SDK版本一致性

确认本地开发环境和线上发布环境使用的.NET SDK版本完全一致,避免因SDK版本差异导致StaticWebAssets处理逻辑不同。如果当前使用预览版SDK,切换到对应正式版再测试。

5. 用二分法定位问题代码变更

既然回滚到上一版本后迁移代码能解决,你可以用二分法逐步验证:

  • 从可用版本开始,分批添加近两周的代码变更(比如先加一半修改),每次添加后构建,直到触发错误,缩小范围后定位到具体文件或代码修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 08:27:06