从 .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 单词:
NUL、CON、AUX、PRN、COM?、LPT?或CLOCK$(其中?为任意数字)。 - 必须为 260 个字符或更少。
- 不能包含无效字符,如控制字符或
?、:、\、/、*、"、"、<、>和|。
此外,现在如果尝试添加与现有项目同名的嵌套项目,dotnet sln add 会成功,这模仿了非嵌套项目的行为。 示例:添加 folder/project.csproj 和 parent/child/project.csproj 不会导致错误。
异常包含当前字符串,但会封装来自 vs-solutionpersistence 的错误消息。
中断性变更的类型
此更改为行为更改。
更改原因
为了过渡到新的 vs-solutionpersistence 序列化程序,引入了这些更改。
建议的操作
查看项目和解决方案文件夹名称,以确保它们符合新的命名限制。
受影响的 API
无