Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You can do this with a short bit of code or script. Visual Studio will fill in most of the GUIDs for you...</p> <p>I knocked something like this together as a one-off to collate projects. It's not 100% perfect, you might end up with duplicates from the way the code handles project names. Hopefully it will show you the way.</p> <p>What we do here is set up the preamble to the Solution file, then insert each solution (you need the Project type guid, seen here beginning FAE, but not the Project's own GUID, which VS will insert on saving the Solution file). There's a bit more boilerplate then we insert the build configuration for each project. I had about 12 configurations for each project (different Release and Debug settings) but I've condensed it here to two.</p> <pre><code>static void Main(string[] args) { if(args.Count() != 2) { Usage(); return; } var rootDir = args[0]; var output = args[1]; var files = Directory.EnumerateFiles(rootDir, "*.*proj", SearchOption.AllDirectories); var configs = new StringBuilder(); var configDefs = new string[]{ ".Debug|Any CPU.ActiveCfg = Debug|Any CPU", ".Release|Any CPU.ActiveCfg = Release|Any CPU", "Other_configurations_see_solution_for_how" }; using(var sw = new StreamWriter(output)) { sw.WriteLine(Resources.Head); foreach(var file in files) { var relpath = file.Substring(rootDir.Length + 1); var split= relpath.Split('\\'); var name = split[0]; var path = relpath; sw.WriteLine("Project(\"{{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}}\") = \"{0}\", \"{1}\", \"{0}\"", name, path); sw.WriteLine("EndProject"); foreach(var configDef in configDefs) { configs.AppendLine(string.Format("{0}{1}", file, configDef)); } } sw.WriteLine(@"Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU ...Other_configurations_see_solution_for_how... EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution"); sw.WriteLine(configs.ToString()); sw.WriteLine(Resources.Tail); } } </code></pre> <p>Head looks a bit like:</p> <pre><code>Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 </code></pre> <p>But I think there are control characters in the first line - beware!</p> <p>Tail looks like</p> <pre><code> GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload