public virtual string TransformText()
{
this.Write(@"Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30723.0
MinimumVisualStudioVersion = 10.0.40219.1
Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""Core"", ""Core"", ""{1523203C-CD16-4B4A-8F9D-8ECCA3A327AA}""
EndProject
Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""Services"", ""Services"", ""{03245B8D-0A27-4C11-9AAC-7047A9F6DFB0}""
EndProject
Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"") = ""Tests"", ""Tests"", ""{AAB6968E-1FCE-47C8-B34C-4850E27458F1}""
EndProject
");
#line 16 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
foreach(var project in (List<SolutionFileCreator.Project>)this.Session["CoreProjects"])
{
#line default
#line hidden
this.Write("Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"");
#line 20 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.Name));
#line default
#line hidden
this.Write("\", \"");
#line 20 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectPath));
#line default
#line hidden
this.Write("\", \"");
#line 20 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write("\"\r\nEndProject\r\n");
#line 22 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
foreach(var folder in (List<SolutionFileCreator.ServiceSolutionFolder>)this.Session["ServiceSolutionFolders"])
{
#line default
#line hidden
this.Write("Project(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\") = \"");
#line 28 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(folder.Name));
#line default
#line hidden
this.Write("\", \"");
#line 28 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(folder.Name));
#line default
#line hidden
this.Write("\", \"");
#line 28 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(folder.ProjectGuid));
#line default
#line hidden
this.Write("\"\r\nEndProject\r\n");
#line 30 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
foreach(var project in folder.Projects)
{
#line default
#line hidden
this.Write("Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"");
#line 35 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.Name));
#line default
#line hidden
this.Write("\", \"");
#line 35 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectPath));
#line default
#line hidden
this.Write("\", \"");
#line 35 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write("\"\r\nEndProject\r\n");
#line 37 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
}
#line default
#line hidden
#line 41 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
foreach(var project in (List<SolutionFileCreator.Project>)this.Session["TestProjects"])
{
#line default
#line hidden
this.Write("Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"");
#line 45 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.Name));
#line default
#line hidden
this.Write("\", \"");
#line 45 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectPath));
#line default
#line hidden
this.Write("\", \"");
#line 45 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write("\"\r\nEndProject\r\n");
#line 47 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
#line default
#line hidden
this.Write("Global\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n");
#line 52 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
foreach (var c in (List<string>)this.Session["Configurations"])
{
#line default
#line hidden
this.Write("\t\t");
#line 56 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(c));
#line default
#line hidden
this.Write(" = ");
#line 56 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(c));
#line default
#line hidden
this.Write("\r\n");
#line 57 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
#line default
#line hidden
this.Write("\tEndGlobalSection\r\n GlobalSection(ProjectConfigurationPlatforms) = postSolutio" +
"n\r\n");
#line 62 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
var allProjectConfigurations = this.Session["AllProjects"] as Dictionary<string, ProjectFileCreator.ProjectConfigurationData>;
foreach(var project in (List<SolutionFileCreator.Project>)this.Session["CoreProjects"])
{
var projectConfigurations = allProjectConfigurations[project.Name];
foreach (var config in projectConfigurations.ConfigurationPlatforms)
{
#line default
#line hidden
this.Write("\t\t");
#line 70 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write(".");
#line 70 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write(".ActiveCfg = ");
#line 70 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write("\r\n\t\t");
#line 71 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write(".");
#line 71 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write(".Build.0 = ");
#line 71 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write("\r\n");
#line 72 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
}
foreach(var folder in (List<SolutionFileCreator.ServiceSolutionFolder>)this.Session["ServiceSolutionFolders"])
{
foreach(var project in folder.Projects)
{
var projectConfigurations = allProjectConfigurations[project.Name];
foreach (var config in projectConfigurations.ConfigurationPlatforms)
{
#line default
#line hidden
this.Write("\t\t");
#line 84 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write(".");
#line 84 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write(".ActiveCfg = ");
#line 84 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write("\r\n\t\t");
#line 85 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write(".");
#line 85 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write(".Build.0 = ");
#line 85 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write("\r\n");
#line 86 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
}
}
#line default
#line hidden
#line 91 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
foreach(var project in (List<SolutionFileCreator.Project>)this.Session["TestProjects"])
{
var projectConfigurations = allProjectConfigurations[project.Name];
foreach (var config in projectConfigurations.ConfigurationPlatforms)
{
#line default
#line hidden
this.Write("\t\t");
#line 98 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write(".");
#line 98 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write(".ActiveCfg = ");
#line 98 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write("\r\n\t\t");
#line 99 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write(".");
#line 99 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write(".Build.0 = ");
#line 99 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(config));
#line default
#line hidden
this.Write("\r\n");
#line 100 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
}
#line default
#line hidden
this.Write(" EndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSol" +
"utionNode = FALSE\r\n\tEndGlobalSection\r\n\tGlobalSection(NestedProjects) = preSoluti" +
"on\r\n");
#line 109 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
foreach(var project in (List<SolutionFileCreator.Project>)this.Session["CoreProjects"])
{
#line default
#line hidden
this.Write("\t\t");
#line 113 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write(" = {1523203C-CD16-4B4A-8F9D-8ECCA3A327AA}\r\n");
#line 114 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
foreach(var folder in (List<SolutionFileCreator.ServiceSolutionFolder>)this.Session["ServiceSolutionFolders"])
{
#line default
#line hidden
this.Write("\t\t");
#line 120 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(folder.ProjectGuid));
#line default
#line hidden
this.Write(" = {03245B8D-0A27-4C11-9AAC-7047A9F6DFB0}\r\n");
#line 121 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
foreach(var project in folder.Projects)
{
#line default
#line hidden
this.Write("\t\t");
#line 125 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write(" = ");
#line 125 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(folder.ProjectGuid));
#line default
#line hidden
this.Write("\r\n");
#line 126 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
}
#line default
#line hidden
#line 130 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
foreach(var project in (List<SolutionFileCreator.Project>)this.Session["TestProjects"])
{
#line default
#line hidden
this.Write("\t\t");
#line 134 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(project.ProjectGuid));
#line default
#line hidden
this.Write(" = {AAB6968E-1FCE-47C8-B34C-4850E27458F1}\r\n");
#line 135 "C:\codebase\v3-master\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\ProjectFiles\SolutionFileGenerator.tt"
}
#line default
#line hidden
this.Write("\tEndGlobalSection\r\nEndGlobal");
return this.GenerationEnvironment.ToString();
}
}
private void GenerateCombinedSolution(string solutionFileName, bool includeTests, IEnumerable<ProjectFileConfiguration> projectFileConfigurations) { Console.WriteLine("Generating solution file {0}", solutionFileName); var session = new Dictionary<string, object>(); var buildConfigurations = new HashSet<string>(StringComparer.OrdinalIgnoreCase); var solutionProjects = new Dictionary<string, ProjectFileCreator.ProjectConfigurationData>(); var sdkSourceFolder = Path.Combine(Options.SdkRootFolder, GeneratorDriver.SourceSubFoldername); var coreProjects = new List<Project>(); var coreProjectsRoot = Path.Combine(sdkSourceFolder, GeneratorDriver.CoreSubFoldername); foreach (var pfc in projectFileConfigurations) { var projectTypeWildCard = string.Format("AWSSDK.*.{0}.csproj", pfc.Name); foreach (var projectFile in Directory.GetFiles(coreProjectsRoot, projectTypeWildCard, SearchOption.TopDirectoryOnly)) { coreProjects.Add(CoreProjectFromFile(projectFile)); SelectProjectAndConfigurationsForSolution(projectFile, solutionProjects, buildConfigurations); } } var serviceSolutionFolders = new List<ServiceSolutionFolder>(); var serviceProjectsRoot = Path.Combine(sdkSourceFolder, GeneratorDriver.ServicesSubFoldername); foreach (var servicePath in Directory.GetDirectories(serviceProjectsRoot)) { var di = new DirectoryInfo(servicePath); var folder = ServiceSolutionFolderFromPath(di.Name); foreach (var pfc in projectFileConfigurations) { var projectTypeWildCard = string.Format("AWSSDK.*.{0}.csproj", pfc.Name); foreach (var projectFile in Directory.GetFiles(servicePath, projectTypeWildCard, SearchOption.TopDirectoryOnly)) { folder.Projects.Add(ServiceProjectFromFile(di.Name, projectFile)); SelectProjectAndConfigurationsForSolution(projectFile, solutionProjects, buildConfigurations); } } serviceSolutionFolders.Add(folder); } var testProjects = new List<Project>(); if (includeTests) { foreach (var pfc in projectFileConfigurations) { var projectType = pfc.Name; var projectTypeWildCard = string.Format("AWSSDK.*.{0}.csproj", pfc.Name); var sdkTestsFolder = Path.Combine(Options.SdkRootFolder, GeneratorDriver.TestsSubFoldername); foreach (var testFoldername in new[] { GeneratorDriver.UnitTestsSubFoldername, GeneratorDriver.IntegrationTestsSubFolderName }) { var testFolder = Path.Combine(sdkTestsFolder, testFoldername); foreach (var projectFile in Directory.GetFiles(testFolder, projectTypeWildCard, SearchOption.TopDirectoryOnly)) { testProjects.Add(TestProjectFromFile(testFoldername, projectFile)); var projectKey = Path.GetFileNameWithoutExtension(projectFile); solutionProjects.Add(projectKey, _allProjects[projectKey]); SelectBuildConfigurationsForProject(projectKey, buildConfigurations); } } if (projectType.Equals(ProjectTypes.Net35, StringComparison.Ordinal) || projectType.Equals(ProjectTypes.Net45, StringComparison.Ordinal) && !solutionProjects.ContainsKey(GeneratorLibProjectName)) { solutionProjects.Add(GeneratorLibProjectName, GeneratorLibProjectConfig); testProjects.Add(GeneratorLibProject); SelectBuildConfigurationsForProject(GeneratorLibProjectName, buildConfigurations); } AddExtraTestProjects(pfc, solutionProjects, testProjects); } } var configurationsList = buildConfigurations.ToList(); configurationsList.Sort(); session["AllProjects"] = solutionProjects; session["CoreProjects"] = coreProjects; session["ServiceSolutionFolders"] = serviceSolutionFolders; session["TestProjects"] = testProjects; session["Configurations"] = configurationsList; var generator = new SolutionFileGenerator { Session = session }; var content = generator.TransformText(); GeneratorDriver.WriteFile(Options.SdkRootFolder, null, solutionFileName, content, true, false); }