Browse Source

VS: Add SLNX project types

Extend commit e6aa7742b0 (VS: Generate .slnx files for VS 2026,
2025-09-17, v4.2.0-rc1~151^2) to add the `Type=` attribute on SLNX
`<Project>` elements.

Fixes: #27392
Brad King 2 weeks ago
parent
commit
b9ce07b85b
24 changed files with 69 additions and 68 deletions
  1. 1 0
      Source/cmVSSolution.cxx
  2. 3 3
      Tests/RunCMake/VSSolution/AddPackageToDefault-check-slnx.cmake
  3. 3 3
      Tests/RunCMake/VSSolution/CMP0143-NEW-check-slnx.cmake
  4. 3 3
      Tests/RunCMake/VSSolution/CMP0143-OLD-check-slnx.cmake
  5. 3 3
      Tests/RunCMake/VSSolution/CMP0143-WARN-check-slnx.cmake
  6. 3 3
      Tests/RunCMake/VSSolution/DeployEnabled-check-slnx.cmake
  7. 2 2
      Tests/RunCMake/VSSolution/MorePost-check-slnx.cmake
  8. 2 2
      Tests/RunCMake/VSSolution/MorePre-check-slnx.cmake
  9. 2 2
      Tests/RunCMake/VSSolution/OnePost-check-slnx.cmake
  10. 2 2
      Tests/RunCMake/VSSolution/OnePre-check-slnx.cmake
  11. 2 2
      Tests/RunCMake/VSSolution/Override1-check-slnx.cmake
  12. 2 2
      Tests/RunCMake/VSSolution/Override2-check-slnx.cmake
  13. 2 2
      Tests/RunCMake/VSSolution/Override3-check-slnx.cmake
  14. 2 2
      Tests/RunCMake/VSSolution/PrePost-check-slnx.cmake
  15. 4 4
      Tests/RunCMake/VSSolution/SolutionItems-check-slnx.cmake
  16. 3 3
      Tests/RunCMake/VSSolution/StartupProject-check-slnx.cmake
  17. 2 2
      Tests/RunCMake/VSSolution/StartupProjectMissing-check-slnx.cmake
  18. 3 3
      Tests/RunCMake/VSSolution/StartupProjectUseFolders-check-slnx.cmake
  19. 3 3
      Tests/RunCMake/VsDotnetSdk/VsDotnetSdkTargetPlatform-check-slnx.cmake
  20. 10 10
      Tests/RunCMake/include_external_msproject/AutoType-check-slnx.cmake
  21. 3 3
      Tests/RunCMake/include_external_msproject/CustomConfig-check-slnx.cmake
  22. 3 3
      Tests/RunCMake/include_external_msproject/CustomGuid-check-slnx.cmake
  23. 3 3
      Tests/RunCMake/include_external_msproject/CustomGuidTypePlatform-check-slnx.cmake
  24. 3 3
      Tests/RunCMake/include_external_msproject/CustomTypePlatform-check-slnx.cmake

+ 1 - 0
Source/cmVSSolution.cxx

@@ -311,6 +311,7 @@ void WriteSlnxProject(cmXMLElement& xmlParent, Solution const& solution,
 {
   cmXMLElement xmlProject(xmlParent, "Project");
   xmlProject.Attribute("Path", project.Path);
+  xmlProject.Attribute("Type", cmSystemTools::LowerCase(project.TypeId));
   xmlProject.Attribute("Id", cmSystemTools::LowerCase(project.Id));
   if (project.Name == solution.StartupProject) {
     xmlProject.Attribute("DefaultStartup", "true");

+ 3 - 3
Tests/RunCMake/VSSolution/AddPackageToDefault-check-slnx.cmake

@@ -8,12 +8,12 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/AddPackageToDefault.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
   </Project>
-  <Project Path="PACKAGE.vcxproj" Id="[0-9a-f-]+">
+  <Project Path="PACKAGE.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+">
     <BuildDependency Project="ALL_BUILD.vcxproj"/>
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
 </Solution>$]])

+ 3 - 3
Tests/RunCMake/VSSolution/CMP0143-NEW-check-slnx.cmake

@@ -8,7 +8,7 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CMP0143-NEW.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="TestStartup\.vcxproj" Id="[0-9a-f-]+">
+  <Project Path="TestStartup\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
@@ -16,13 +16,13 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CMP0143-NEW.slnx" [[
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
   <Folder Name="/CMakePredefinedTargets/">
-    <Project Path="ALL_BUILD.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+    <Project Path="ALL_BUILD.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
       <BuildDependency Project="ZERO_CHECK.vcxproj"/>
       <Build Solution="Debug\|\*" Project="false"/>
       <Build Solution="Release\|\*" Project="false"/>
       <Build Solution="MinSizeRel\|\*" Project="false"/>
       <Build Solution="RelWithDebInfo\|\*" Project="false"/>
     </Project>
-    <Project Path="ZERO_CHECK.vcxproj" Id="[0-9a-f-]+"/>
+    <Project Path="ZERO_CHECK.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   </Folder>
 </Solution>$]])

+ 3 - 3
Tests/RunCMake/VSSolution/CMP0143-OLD-check-slnx.cmake

@@ -8,19 +8,19 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CMP0143-OLD.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="TestStartup.vcxproj" Id="[0-9a-f-]+">
+  <Project Path="TestStartup.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
 </Solution>$]])

+ 3 - 3
Tests/RunCMake/VSSolution/CMP0143-WARN-check-slnx.cmake

@@ -8,19 +8,19 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CMP0143-WARN.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="TestStartup.vcxproj" Id="[0-9a-f-]+">
+  <Project Path="TestStartup.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
 </Solution>$]])

+ 3 - 3
Tests/RunCMake/VSSolution/DeployEnabled-check-slnx.cmake

@@ -8,7 +8,7 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/DeployEnabled.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <BuildDependency Project="foo\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
@@ -16,8 +16,8 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/DeployEnabled.slnx" [[
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
-  <Project Path="foo\.vcxproj" Id="[0-9a-f-]+">
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
+  <Project Path="foo\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Deploy Solution="Debug\|\*"/>
     <Deploy Solution="MinSizeRel\|\*"/>

+ 2 - 2
Tests/RunCMake/VSSolution/MorePost-check-slnx.cmake

@@ -8,14 +8,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/MorePost.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Properties Name="TestSec2" Scope="PostLoad">
     <Properties Name="Key1" Value="Value1"/>
     <Properties Name="Key2" Value="Value with spaces"/>

+ 2 - 2
Tests/RunCMake/VSSolution/MorePre-check-slnx.cmake

@@ -8,14 +8,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/MorePre.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Properties Name="TestSec1">
     <Properties Name="Key1" Value="Value1"/>
     <Properties Name="Key2" Value="Value with spaces"/>

+ 2 - 2
Tests/RunCMake/VSSolution/OnePost-check-slnx.cmake

@@ -8,14 +8,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/OnePost.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Properties Name="TestSec2" Scope="PostLoad">
     <Properties Name="Key1" Value="Value1"/>
     <Properties Name="Key2" Value="Value with spaces"/>

+ 2 - 2
Tests/RunCMake/VSSolution/OnePre-check-slnx.cmake

@@ -8,14 +8,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/OnePre.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Properties Name="TestSec1">
     <Properties Name="Key1" Value="Value1"/>
     <Properties Name="Key2" Value="Value with spaces"/>

+ 2 - 2
Tests/RunCMake/VSSolution/Override1-check-slnx.cmake

@@ -8,14 +8,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/Override1.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Properties Name="ExtensibilityGlobals" Scope="PostLoad">
     <Properties Name="Key1" Value="Value1"/>
   </Properties>

+ 2 - 2
Tests/RunCMake/VSSolution/Override2-check-slnx.cmake

@@ -8,14 +8,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/Override2.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Properties Name="ExtensibilityAddIns" Scope="PostLoad">
     <Properties Name="Key1" Value="Value1"/>
   </Properties>

+ 2 - 2
Tests/RunCMake/VSSolution/Override3-check-slnx.cmake

@@ -8,14 +8,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/Override3.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Properties Name="ExtensibilityGlobals" Scope="PostLoad">
     <Properties Name="Key1" Value="Value1"/>
     <Properties Name="SolutionGuid" Value="{custom-guid}"/>

+ 2 - 2
Tests/RunCMake/VSSolution/PrePost-check-slnx.cmake

@@ -8,14 +8,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/PrePost.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Properties Name="Emptysec" Scope="PostLoad"/>
   <Properties Name="Postsec" Scope="PostLoad">
     <Properties Name="Key1" Value="Value2"/>

+ 4 - 4
Tests/RunCMake/VSSolution/SolutionItems-check-slnx.cmake

@@ -8,14 +8,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/SolutionItems.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Folder Name="/Outer Group/">
     <File Path="[^"]*/Tests/RunCMake/VSSolution/solution-item-1-1\.txt"/>
   </Folder>
@@ -38,14 +38,14 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/SolutionItems/SolutionItemsSubp
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="\.\./ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="\.\./ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="\.\./ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   <Folder Name="/Extraneous/">
     <File Path="[^"]*/Tests/RunCMake/VSSolution/SolutionItems/extraneous\.txt"/>
   </Folder>

+ 3 - 3
Tests/RunCMake/VSSolution/StartupProject-check-slnx.cmake

@@ -8,19 +8,19 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/StartupProject.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="TestStartup\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="TestStartup\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
 </Solution>$]])

+ 2 - 2
Tests/RunCMake/VSSolution/StartupProjectMissing-check-slnx.cmake

@@ -8,12 +8,12 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/StartupProjectMissing.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
 </Solution>$]])

+ 3 - 3
Tests/RunCMake/VSSolution/StartupProjectUseFolders-check-slnx.cmake

@@ -8,7 +8,7 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/StartupProjectUseFolders.slnx"
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="TestStartup\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="TestStartup\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
     <Build Solution="Release\|\*" Project="false"/>
@@ -16,13 +16,13 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/StartupProjectUseFolders.slnx"
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
   <Folder Name="/CMakePredefinedTargets/">
-    <Project Path="ALL_BUILD.vcxproj" Id="[0-9a-f-]+">
+    <Project Path="ALL_BUILD.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+">
       <BuildDependency Project="ZERO_CHECK.vcxproj"/>
       <Build Solution="Debug\|\*" Project="false"/>
       <Build Solution="Release\|\*" Project="false"/>
       <Build Solution="MinSizeRel\|\*" Project="false"/>
       <Build Solution="RelWithDebInfo\|\*" Project="false"/>
     </Project>
-    <Project Path="ZERO_CHECK.vcxproj" Id="[0-9a-f-]+"/>
+    <Project Path="ZERO_CHECK.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
   </Folder>
 </Solution>$]])

+ 3 - 3
Tests/RunCMake/VsDotnetSdk/VsDotnetSdkTargetPlatform-check-slnx.cmake

@@ -8,7 +8,7 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/VsDotnetSdkTargetPlatform.slnx"
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <BuildDependency Project="foo\.csproj"/>
     <Build Solution="Debug\|\*" Project="false"/>
@@ -16,8 +16,8 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/VsDotnetSdkTargetPlatform.slnx"
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
-  <Project Path="foo\.csproj" Id="[0-9a-f-]+">
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
+  <Project Path="foo\.csproj" Type="fae04ec0-301f-11d3-bf4b-00c04f79efbc" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <Platform Project="[^"]+"/>
   </Project>

+ 10 - 10
Tests/RunCMake/include_external_msproject/AutoType-check-slnx.cmake

@@ -8,7 +8,7 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/AutoType.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <BuildDependency Project="external\.csproj"/>
     <BuildDependency Project="external\.dbproj"/>
@@ -23,30 +23,30 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/AutoType.slnx" [[
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
-  <Project Path="external\.csproj" Id="[0-9a-f-]+">
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
+  <Project Path="external\.csproj" Type="fae04ec0-301f-11d3-bf4b-00c04f79efbc" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
     <Platform Project="[^"]+"/>
   </Project>
-  <Project Path="external\.dbproj" Id="[0-9a-f-]+">
+  <Project Path="external\.dbproj" Type="c8d11400-126e-41cd-887f-60bd40844f9e" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
   </Project>
-  <Project Path="external\.fsproj" Id="[0-9a-f-]+">
+  <Project Path="external\.fsproj" Type="f2a71f9b-5d33-465a-a702-920d77279786" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
   </Project>
-  <Project Path="external\.pyproj" Id="[0-9a-f-]+">
+  <Project Path="external\.pyproj" Type="888888a0-9f3d-457c-b088-3a5042f75d52" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
   </Project>
-  <Project Path="external\.vbproj" Id="[0-9a-f-]+">
+  <Project Path="external\.vbproj" Type="f184b08f-c81c-45f6-a57f-5abd9991f28f" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
   </Project>
-  <Project Path="external\.vdproj" Id="[0-9a-f-]+">
+  <Project Path="external\.vdproj" Type="54435603-dbb4-11d2-8724-00a0c9a8b90c" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
   </Project>
-  <Project Path="external\.vfproj" Id="[0-9a-f-]+">
+  <Project Path="external\.vfproj" Type="6989167d-11e4-40fe-8c1a-2192a86a7e90" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
   </Project>
-  <Project Path="external\.wixproj" Id="[0-9a-f-]+">
+  <Project Path="external\.wixproj" Type="930c7802-8a8c-48f9-8165-68863bccd9dd" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
   </Project>
 </Solution>$]])

+ 3 - 3
Tests/RunCMake/include_external_msproject/CustomConfig-check-slnx.cmake

@@ -8,7 +8,7 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CustomConfig.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <BuildDependency Project="external.project"/>
     <Build Solution="Debug\|\*" Project="false"/>
@@ -16,8 +16,8 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CustomConfig.slnx" [[
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
-  <Project Path="external.project" Id="aaa-bbb-ccc-000">
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
+  <Project Path="external.project" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="aaa-bbb-ccc-000">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
     <BuildType Solution="Release\|\*" Project="Custom - Release"/>
     <BuildType Solution="MinSizeRel\|\*" Project="Custom - MinSizeRel"/>

+ 3 - 3
Tests/RunCMake/include_external_msproject/CustomGuid-check-slnx.cmake

@@ -8,7 +8,7 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CustomGuid.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <BuildDependency Project="external.project"/>
     <Build Solution="Debug\|\*" Project="false"/>
@@ -16,8 +16,8 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CustomGuid.slnx" [[
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
-  <Project Path="external.project" Id="aaa-bbb-ccc-000">
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
+  <Project Path="external.project" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="aaa-bbb-ccc-000">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
   </Project>
 </Solution>$]])

+ 3 - 3
Tests/RunCMake/include_external_msproject/CustomGuidTypePlatform-check-slnx.cmake

@@ -8,7 +8,7 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CustomGuidTypePlatform.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <BuildDependency Project="external.project"/>
     <Build Solution="Debug\|\*" Project="false"/>
@@ -16,8 +16,8 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CustomGuidTypePlatform.slnx" [[
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
-  <Project Path="external.project" Id="aaa-bbb-ccc-111">
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
+  <Project Path="external.project" Type="aaa-bbb-ccc-ddd-eee" Id="aaa-bbb-ccc-111">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
     <Platform Project="Custom Platform"/>
   </Project>

+ 3 - 3
Tests/RunCMake/include_external_msproject/CustomTypePlatform-check-slnx.cmake

@@ -8,7 +8,7 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CustomTypePlatform.slnx" [[
     <BuildType Name="RelWithDebInfo"/>
     <Platform Name="[^"]+"/>
   </Configurations>
-  <Project Path="ALL_BUILD\.vcxproj" Id="[0-9a-f-]+" DefaultStartup="true">
+  <Project Path="ALL_BUILD\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+" DefaultStartup="true">
     <BuildDependency Project="ZERO_CHECK\.vcxproj"/>
     <BuildDependency Project="external.project"/>
     <Build Solution="Debug\|\*" Project="false"/>
@@ -16,8 +16,8 @@ RunCMake_check_slnx("${RunCMake_TEST_BINARY_DIR}/CustomTypePlatform.slnx" [[
     <Build Solution="MinSizeRel\|\*" Project="false"/>
     <Build Solution="RelWithDebInfo\|\*" Project="false"/>
   </Project>
-  <Project Path="ZERO_CHECK\.vcxproj" Id="[0-9a-f-]+"/>
-  <Project Path="external.project" Id="[0-9a-f-]+">
+  <Project Path="ZERO_CHECK\.vcxproj" Type="8bc9ceb8-8b4a-11d0-8d11-00a0c91bc942" Id="[0-9a-f-]+"/>
+  <Project Path="external.project" Type="aaa-bbb-ccc-ddd-eee" Id="[0-9a-f-]+">
     <BuildDependency Project="ZERO_CHECK.vcxproj"/>
     <Platform Project="Custom Platform"/>
   </Project>