@@ -446,6 +446,58 @@ public void Merge_SolutionFolder_ExistedFolder_SectionExists()
446
446
" . Trim ( ) . ReplacePathSeparators ( ) , content . Trim ( ) ) ;
447
447
}
448
448
449
+ [ Fact ]
450
+ public void Merge_SolutionFolder_ProjectHasBeenRemovedFromBaseSolution ( )
451
+ {
452
+ var baseSln = SolutionFile . Parse ( @"C:\Path\To\Nantoka\Nantoka.Unity\Nantoka.Unity.sln" . ToCurrentPlatformPathForm ( ) , @"
453
+ Microsoft Visual Studio Solution File, Format Version 12.00
454
+ # Visual Studio 16
455
+ Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = ""Assembly-CSharp"", ""Assembly-CSharp.csproj"", ""{1E7138DC-D3E2-51A8-4059-67524470B2E7}""
456
+ EndProject
457
+ Global
458
+ GlobalSection(NestedProjects) = preSolution
459
+ {1E7138DC-D3E2-51A8-4059-67524470B2E7} = {F95BC0CF-E609-419F-B0A0-019BD5783670}
460
+ {1E7138DC-D3E2-51A8-4059-67524470B2E8} = {F95BC0CF-E609-419F-B0A0-019BD5783670}
461
+ EndGlobalSection
462
+ EndGlobal
463
+ " . Trim ( ) ) ;
464
+ var overlaySln = SolutionFile . Parse ( @"C:\Path\To\Nantoka\Nantoka.Unity\Nantoka.Server.sln" . ToCurrentPlatformPathForm ( ) , @"
465
+ Microsoft Visual Studio Solution File, Format Version 12.00
466
+ Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""Folder1"", ""Folder1"", ""{F95BC0CF-E609-419F-B0A0-019BD5783670}""
467
+ EndProject
468
+ Global
469
+ EndGlobal
470
+ " . Trim ( ) ) ;
471
+
472
+ // Merge without errors. NestedProject of removed projects remain in a merged solution.
473
+ var mergedSolutionFile = SlnMerge . Merge (
474
+ baseSln ,
475
+ overlaySln ,
476
+ new SlnMergeSettings ( )
477
+ {
478
+ NestedProjects = new [ ]
479
+ {
480
+ new SlnMergeSettings . NestedProject ( ) { FolderPath = "Folder1" , ProjectName = "Assembly-CSharp" } ,
481
+ }
482
+ } ,
483
+ SlnMergeNullLogger . Instance ) ;
484
+ var content = mergedSolutionFile . ToFileContent ( ) ;
485
+ Assert . Equal ( @"
486
+ Microsoft Visual Studio Solution File, Format Version 12.00
487
+ # Visual Studio 16
488
+ Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = ""Assembly-CSharp"", ""Assembly-CSharp.csproj"", ""{1E7138DC-D3E2-51A8-4059-67524470B2E7}""
489
+ EndProject
490
+ Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""Folder1"", ""Folder1"", ""{F95BC0CF-E609-419F-B0A0-019BD5783670}""
491
+ EndProject
492
+ Global
493
+ GlobalSection(NestedProjects) = preSolution
494
+ {1E7138DC-D3E2-51A8-4059-67524470B2E7} = {F95BC0CF-E609-419F-B0A0-019BD5783670}
495
+ {1E7138DC-D3E2-51A8-4059-67524470B2E8} = {F95BC0CF-E609-419F-B0A0-019BD5783670}
496
+ EndGlobalSection
497
+ EndGlobal
498
+ " . Trim ( ) . ReplacePathSeparators ( ) , content . Trim ( ) ) ;
499
+ }
500
+
449
501
[ Fact ]
450
502
public void Merge_SolutionItems ( )
451
503
{
0 commit comments