

解决方案文件是 Visual Studio 中用于组织和管理多个项目的文件,其后缀通常为.sln(基于 UTF-8格式的)。它充当一个容器,维护着项目之间的引用关系、构建配置以及其他设置,定义了解决方案的结构以及包含哪些项目。现如今 Visual Studio 解决方案文件已经支持新的、更简洁的基于 XML 格式的解决方案文件格式.slnx。

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.13.35931.197
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Entity", "Entity\Entity.csproj", "{329B4D23-FBA9-41FE-8735-0230C3B7E2F3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp", "ConsoleApp\ConsoleApp.csproj", "{B953C125-9072-49FD-BB08-0065C55F2C81}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Service", "Service\Service.csproj", "{D89B7585-1EF1-40D0-975D-F1F5B3EF38EF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utility", "Utility\Utility.csproj", "{3BDB8ABE-89E6-41C2-814E-F3E62A2CD2BB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebAPI", "WebAPI\WebAPI.csproj", "{CBCE9228-F543-473F-8440-D1BE80888E78}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatabaseFirst", "DatabaseFirst\DatabaseFirst.csproj", "{4E7286C0-3357-450B-9A8F-EABB0AFDEEA1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{329B4D23-FBA9-41FE-8735-0230C3B7E2F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{329B4D23-FBA9-41FE-8735-0230C3B7E2F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{329B4D23-FBA9-41FE-8735-0230C3B7E2F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{329B4D23-FBA9-41FE-8735-0230C3B7E2F3}.Release|Any CPU.Build.0 = Release|Any CPU
{B953C125-9072-49FD-BB08-0065C55F2C81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B953C125-9072-49FD-BB08-0065C55F2C81}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B953C125-9072-49FD-BB08-0065C55F2C81}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B953C125-9072-49FD-BB08-0065C55F2C81}.Release|Any CPU.Build.0 = Release|Any CPU
{D89B7585-1EF1-40D0-975D-F1F5B3EF38EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D89B7585-1EF1-40D0-975D-F1F5B3EF38EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D89B7585-1EF1-40D0-975D-F1F5B3EF38EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D89B7585-1EF1-40D0-975D-F1F5B3EF38EF}.Release|Any CPU.Build.0 = Release|Any CPU
{3BDB8ABE-89E6-41C2-814E-F3E62A2CD2BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3BDB8ABE-89E6-41C2-814E-F3E62A2CD2BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3BDB8ABE-89E6-41C2-814E-F3E62A2CD2BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3BDB8ABE-89E6-41C2-814E-F3E62A2CD2BB}.Release|Any CPU.Build.0 = Release|Any CPU
{CBCE9228-F543-473F-8440-D1BE80888E78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CBCE9228-F543-473F-8440-D1BE80888E78}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CBCE9228-F543-473F-8440-D1BE80888E78}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CBCE9228-F543-473F-8440-D1BE80888E78}.Release|Any CPU.Build.0 = Release|Any CPU
{4E7286C0-3357-450B-9A8F-EABB0AFDEEA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4E7286C0-3357-450B-9A8F-EABB0AFDEEA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4E7286C0-3357-450B-9A8F-EABB0AFDEEA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4E7286C0-3357-450B-9A8F-EABB0AFDEEA1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {135D33CF-9839-44D7-BF75-06D9D61A302A}
EndGlobalSection
EndGlobal接下来我们分享2种将现有项目的.sln文件格式转换为新的.slnx文件格式的方法。


现在 .NET CLI 已更新以处理 .slnx 文件格式,使用 dotnet sln migrate 命令将传统的 .sln 解决方案文件迁移到新的 .slnx 解决方案文件格式。

<Solution>
<Project Path="ConsoleApp/ConsoleApp.csproj" />
<Project Path="DatabaseFirst/DatabaseFirst.csproj" />
<Project Path="Entity/Entity.csproj" />
<Project Path="Service/Service.csproj" />
<Project Path="Utility/Utility.csproj" />
<Project Path="WebAPI/WebAPI.csproj" />
</Solution>用于 Visual Studio 解决方案文件的共享序列化器和模型,处理传统的 .sln 文件和新的 .slnx 文件。

