dotnet sln add 不再允许无效的文件名

从 .NET SDK 9.0.2xx 开始,dotnet sln add CLI 命令使用 vs-solutionpersistence 序列化器添加了对 .slnx 解决方案文件的支持。 因此,预期行为会略有变化。

引入的版本

.NET SDK 9.0.2xx

以前的行为

以前,项目和解决方案文件夹可能具有无效的 Windows 文件名。 它们的名称中也可能具有无效字符。 此外,如果尝试添加与现有项目同名的嵌套项目,则 dotnet sln add 失败。

新行为

从 .NET SDK 9.0.2xx 开始,项目和解决方案文件夹名称:

  • 不能是 DOS 单词:NULCONAUXPRNCOM?LPT?CLOCK$(其中 ? 为任意数字)。
  • 必须为 260 个字符或更少。
  • 不能包含无效字符,如控制字符或 ?:\/*""<>|

此外,现在如果尝试添加与现有项目同名的嵌套项目,dotnet sln add 会成功,这模仿了非嵌套项目的行为。 示例:添加 folder/project.csprojparent/child/project.csproj 不会导致错误。

异常包含当前字符串,但会封装来自 vs-solutionpersistence 的错误消息。

中断性变更的类型

此更改为行为更改

更改原因

为了过渡到新的 vs-solutionpersistence 序列化程序,引入了这些更改。

查看项目和解决方案文件夹名称,以确保它们符合新的命名限制。

受影响的 API

N/A