`dotnet sln add` 错误的项目类型 GUID
`dotnet sln add` wrong project type GUID
当我为 .NET Core/Standard 项目执行 dotnet sln add {myProject.csproj}
时,它会将其添加为项目类型(我认为){FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
而不是 .NET Core 的 {9A19103F-16F7-4668-BE54-9A1E7A4F7556}
。
因此,当我在 Visual Studio 中打开解决方案时,它会抱怨并将 csproj
“升级”为 .NET Framework csproj
,不是 .NET Core 的。我可以手动编辑 sln
,但这很麻烦。
我是不是做错了什么?有我遗漏的参数吗?
CLI 实际上在这里做了正确的事情,这是一个 VS/Project 系统错误。
CLI 调用 msbuild 以获取要使用的默认项目类型 GUID。 MSBuild 将 C# 的 $(DefaultProjectTypeGuid)
和 VB 项目设置为 "classic",以允许 CLI 将 "classic" 和 "SDK-style" 项目添加到解决方案中。
经典 GUID (FAE04EC0…
) 然后触发选择逻辑,查看项目中是否设置了 TargetFramework
或 TargetFrameworks
以确定 "new" 或"classic" 将使用项目系统。想法是在某个时候只使用新的项目系统,经典的项目系统可能在未来的某个更新中不再是VS的一部分(这是GitHub上很多评论的基调)。
According to the logged GitHub issue, the bug is that when the new project system is elected, the solution is updated to the "new" GUID which VS/the solution shouldn't see.
当我为 .NET Core/Standard 项目执行 dotnet sln add {myProject.csproj}
时,它会将其添加为项目类型(我认为){FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
而不是 .NET Core 的 {9A19103F-16F7-4668-BE54-9A1E7A4F7556}
。
因此,当我在 Visual Studio 中打开解决方案时,它会抱怨并将 csproj
“升级”为 .NET Framework csproj
,不是 .NET Core 的。我可以手动编辑 sln
,但这很麻烦。
我是不是做错了什么?有我遗漏的参数吗?
CLI 实际上在这里做了正确的事情,这是一个 VS/Project 系统错误。
CLI 调用 msbuild 以获取要使用的默认项目类型 GUID。 MSBuild 将 C# 的 $(DefaultProjectTypeGuid)
和 VB 项目设置为 "classic",以允许 CLI 将 "classic" 和 "SDK-style" 项目添加到解决方案中。
经典 GUID (FAE04EC0…
) 然后触发选择逻辑,查看项目中是否设置了 TargetFramework
或 TargetFrameworks
以确定 "new" 或"classic" 将使用项目系统。想法是在某个时候只使用新的项目系统,经典的项目系统可能在未来的某个更新中不再是VS的一部分(这是GitHub上很多评论的基调)。
According to the logged GitHub issue, the bug is that when the new project system is elected, the solution is updated to the "new" GUID which VS/the solution shouldn't see.