You need to enable JavaScript to run this app. MSBuild构建解决方案指定项目时含点号的文件夹路径无法正确识别
优惠活动
大模型
产品
解决方案
定价
更多

MSBuild构建解决方案指定项目时含点号的文件夹路径无法正确识别

MSBuild 构建解决方案内指定项目的正确规则

实际操作时碰到的规则表现

  • 文档中提到的「项目名的.替换为_」规则,仅对项目名称本身有效,不会作用于文件夹路径部分:执行 msbuild Solution.sln /t:"Folder\Project1_Name" 可正常构建路径为 Folder\Project1.Name.csproj 的项目
  • 直接在目标参数中传入带.的文件夹路径会触发运行时异常:执行 msbuild Solution.sln /t:"Folder.Name\Project2" 构建路径为 Folder.Name\Project2.Name.csproj 的项目时,会抛出未处理参数异常:
Unhandled Exception:
System.ArgumentException: The name "Folder.Name\Project2" contains an invalid character ".".
  • 全量将路径、项目名中的.替换为下划线的操作不生效:执行 msbuild Solution.sln /t:"Folder_Name\Project2_Name" 会触发目标不存在的编译错误:
error MSB4057: The target "Folder_Name\Project2_Name" does not exist in the project.

可落地的操作方法

解决方案层级的项目目标名,是MSBuild解析.sln文件时动态生成的,没有固定的手动拼接、字符替换规则,不需要自行转换路径或项目名里的字符。
仅需执行不带 /t 参数的 msbuild Solution.sln,在初始化阶段的输出日志中找到对应项目注册的原生目标名称,将这串名称作为 /t 参数值传入即可。
针对文件夹名本身带.的场景,日志里展示的目标名会自动完成字符兼容处理,手动替换字符反而会造成目标名和实际注册值不匹配,触发MSB4057报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 04:06:01