Merge pull request #8285 from peterhuene/sln-add-map-project-configurations
Map solution configurations to existing project configurations on add.
This commit is contained in:
commit
28d929a6d5
11 changed files with 440 additions and 65 deletions
|
@ -81,16 +81,16 @@ Global
|
|||
{7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.Build.0 = Release|x86
|
||||
__LIB_PROJECT_GUID__.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x64.ActiveCfg = Debug|x64
|
||||
__LIB_PROJECT_GUID__.Debug|x64.Build.0 = Debug|x64
|
||||
__LIB_PROJECT_GUID__.Debug|x86.ActiveCfg = Debug|x86
|
||||
__LIB_PROJECT_GUID__.Debug|x86.Build.0 = Debug|x86
|
||||
__LIB_PROJECT_GUID__.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x64.Build.0 = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x86.Build.0 = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x64.ActiveCfg = Release|x64
|
||||
__LIB_PROJECT_GUID__.Release|x64.Build.0 = Release|x64
|
||||
__LIB_PROJECT_GUID__.Release|x86.ActiveCfg = Release|x86
|
||||
__LIB_PROJECT_GUID__.Release|x86.Build.0 = Release|x86
|
||||
__LIB_PROJECT_GUID__.Release|x64.ActiveCfg = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x64.Build.0 = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x86.ActiveCfg = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -117,16 +117,16 @@ Global
|
|||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
__LIB_PROJECT_GUID__.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x64.ActiveCfg = Debug|x64
|
||||
__LIB_PROJECT_GUID__.Debug|x64.Build.0 = Debug|x64
|
||||
__LIB_PROJECT_GUID__.Debug|x86.ActiveCfg = Debug|x86
|
||||
__LIB_PROJECT_GUID__.Debug|x86.Build.0 = Debug|x86
|
||||
__LIB_PROJECT_GUID__.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x64.Build.0 = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x86.Build.0 = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x64.ActiveCfg = Release|x64
|
||||
__LIB_PROJECT_GUID__.Release|x64.Build.0 = Release|x64
|
||||
__LIB_PROJECT_GUID__.Release|x86.ActiveCfg = Release|x86
|
||||
__LIB_PROJECT_GUID__.Release|x86.Build.0 = Release|x86
|
||||
__LIB_PROJECT_GUID__.Release|x64.ActiveCfg = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x64.Build.0 = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x86.ActiveCfg = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
";
|
||||
|
@ -166,16 +166,16 @@ Global
|
|||
{7072A694-548F-4CAE-A58F-12D257D5F486}.Release|x86.Build.0 = Release|x86
|
||||
__LIB_PROJECT_GUID__.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x64.ActiveCfg = Debug|x64
|
||||
__LIB_PROJECT_GUID__.Debug|x64.Build.0 = Debug|x64
|
||||
__LIB_PROJECT_GUID__.Debug|x86.ActiveCfg = Debug|x86
|
||||
__LIB_PROJECT_GUID__.Debug|x86.Build.0 = Debug|x86
|
||||
__LIB_PROJECT_GUID__.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x64.Build.0 = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Debug|x86.Build.0 = Debug|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x64.ActiveCfg = Release|x64
|
||||
__LIB_PROJECT_GUID__.Release|x64.Build.0 = Release|x64
|
||||
__LIB_PROJECT_GUID__.Release|x86.ActiveCfg = Release|x86
|
||||
__LIB_PROJECT_GUID__.Release|x86.Build.0 = Release|x86
|
||||
__LIB_PROJECT_GUID__.Release|x64.ActiveCfg = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x64.Build.0 = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x86.ActiveCfg = Release|Any CPU
|
||||
__LIB_PROJECT_GUID__.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -184,6 +184,141 @@ Global
|
|||
__LIB_PROJECT_GUID__ = __SRC_FOLDER_GUID__
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
";
|
||||
|
||||
private const string ExpectedSlnFileAfterAddingProjectWithoutMatchingConfigs = @"
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26006.2
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = ""ProjectWithoutMatchingConfigs"", ""ProjectWithoutMatchingConfigs\ProjectWithoutMatchingConfigs.csproj"", ""{C49B64DE-4401-4825-8A88-10DCB5950E57}""
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
Foo Bar|Any CPU = Foo Bar|Any CPU
|
||||
Foo Bar|x64 = Foo Bar|x64
|
||||
Foo Bar|x86 = Foo Bar|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Release|x64.Build.0 = Release|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Release|x86.Build.0 = Release|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Foo Bar|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Foo Bar|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Foo Bar|x64.ActiveCfg = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Foo Bar|x64.Build.0 = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Foo Bar|x86.ActiveCfg = Debug|Any CPU
|
||||
{C49B64DE-4401-4825-8A88-10DCB5950E57}.Foo Bar|x86.Build.0 = Debug|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
";
|
||||
|
||||
private const string ExpectedSlnFileAfterAddingProjectWithMatchingConfigs = @"
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26006.2
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = ""ProjectWithMatchingConfigs"", ""ProjectWithMatchingConfigs\ProjectWithMatchingConfigs.csproj"", ""{C9601CA2-DB64-4FB6-B463-368C7764BF0D}""
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
Foo Bar|Any CPU = Foo Bar|Any CPU
|
||||
Foo Bar|x64 = Foo Bar|x64
|
||||
Foo Bar|x86 = Foo Bar|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Debug|x64.Build.0 = Debug|x64
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Debug|x86.Build.0 = Debug|x86
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Release|x64.ActiveCfg = Release|x64
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Release|x64.Build.0 = Release|x64
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Release|x86.ActiveCfg = Release|x86
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Release|x86.Build.0 = Release|x86
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Foo Bar|Any CPU.ActiveCfg = FooBar|Any CPU
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Foo Bar|Any CPU.Build.0 = FooBar|Any CPU
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Foo Bar|x64.ActiveCfg = FooBar|x64
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Foo Bar|x64.Build.0 = FooBar|x64
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Foo Bar|x86.ActiveCfg = FooBar|x86
|
||||
{C9601CA2-DB64-4FB6-B463-368C7764BF0D}.Foo Bar|x86.Build.0 = FooBar|x86
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
";
|
||||
|
||||
private const string ExpectedSlnFileAfterAddingProjectWithAdditionalConfigs = @"
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26006.2
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = ""ProjectWithAdditionalConfigs"", ""ProjectWithAdditionalConfigs\ProjectWithAdditionalConfigs.csproj"", ""{A302325B-D680-4C0E-8680-7AE283981624}""
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
Foo Bar|Any CPU = Foo Bar|Any CPU
|
||||
Foo Bar|x64 = Foo Bar|x64
|
||||
Foo Bar|x86 = Foo Bar|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Debug|x64.Build.0 = Debug|x64
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Debug|x86.Build.0 = Debug|x86
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Release|x64.ActiveCfg = Release|x64
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Release|x64.Build.0 = Release|x64
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Release|x86.ActiveCfg = Release|x86
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Release|x86.Build.0 = Release|x86
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Foo Bar|Any CPU.ActiveCfg = FooBar|Any CPU
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Foo Bar|Any CPU.Build.0 = FooBar|Any CPU
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Foo Bar|x64.ActiveCfg = FooBar|x64
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Foo Bar|x64.Build.0 = FooBar|x64
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Foo Bar|x86.ActiveCfg = FooBar|x86
|
||||
{A302325B-D680-4C0E-8680-7AE283981624}.Foo Bar|x86.Build.0 = FooBar|x86
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
";
|
||||
|
||||
[Theory]
|
||||
|
@ -788,6 +923,69 @@ EndGlobal
|
|||
solutionFolderProjects.Count().Should().Be(1);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WhenProjectWithoutMatchingConfigurationsIsAddedSolutionMapsToFirstAvailable()
|
||||
{
|
||||
var slnDirectory = TestAssets
|
||||
.Get("TestAppWithSlnAndProjectConfigs")
|
||||
.CreateInstance()
|
||||
.WithSourceFiles()
|
||||
.Root
|
||||
.FullName;
|
||||
|
||||
var slnFullPath = Path.Combine(slnDirectory, "App.sln");
|
||||
|
||||
var result = new DotnetCommand()
|
||||
.WithWorkingDirectory(slnDirectory)
|
||||
.ExecuteWithCapturedOutput($"sln add ProjectWithoutMatchingConfigs");
|
||||
result.Should().Pass();
|
||||
|
||||
File.ReadAllText(slnFullPath)
|
||||
.Should().BeVisuallyEquivalentTo(ExpectedSlnFileAfterAddingProjectWithoutMatchingConfigs);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WhenProjectWithMatchingConfigurationsIsAddedSolutionMapsAll()
|
||||
{
|
||||
var slnDirectory = TestAssets
|
||||
.Get("TestAppWithSlnAndProjectConfigs")
|
||||
.CreateInstance()
|
||||
.WithSourceFiles()
|
||||
.Root
|
||||
.FullName;
|
||||
|
||||
var slnFullPath = Path.Combine(slnDirectory, "App.sln");
|
||||
|
||||
var result = new DotnetCommand()
|
||||
.WithWorkingDirectory(slnDirectory)
|
||||
.ExecuteWithCapturedOutput($"sln add ProjectWithMatchingConfigs");
|
||||
result.Should().Pass();
|
||||
|
||||
File.ReadAllText(slnFullPath)
|
||||
.Should().BeVisuallyEquivalentTo(ExpectedSlnFileAfterAddingProjectWithMatchingConfigs);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WhenProjectWithAdditionalConfigurationsIsAddedSolutionDoesNotMapThem()
|
||||
{
|
||||
var slnDirectory = TestAssets
|
||||
.Get("TestAppWithSlnAndProjectConfigs")
|
||||
.CreateInstance()
|
||||
.WithSourceFiles()
|
||||
.Root
|
||||
.FullName;
|
||||
|
||||
var slnFullPath = Path.Combine(slnDirectory, "App.sln");
|
||||
|
||||
var result = new DotnetCommand()
|
||||
.WithWorkingDirectory(slnDirectory)
|
||||
.ExecuteWithCapturedOutput($"sln add ProjectWithAdditionalConfigs");
|
||||
result.Should().Pass();
|
||||
|
||||
File.ReadAllText(slnFullPath)
|
||||
.Should().BeVisuallyEquivalentTo(ExpectedSlnFileAfterAddingProjectWithAdditionalConfigs);
|
||||
}
|
||||
|
||||
private string GetExpectedSlnContents(
|
||||
string slnPath,
|
||||
string slnTemplate,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue