<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://bloggingabout.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Solution Maker', 'Visual Studio', and 'Solution'</title><link>http://bloggingabout.net/search/SearchResults.aspx?a=1&amp;o=DateDescending&amp;tag=Solution+Maker,Visual+Studio,Solution&amp;orTags=0</link><description>Search results matching tags 'Solution Maker', 'Visual Studio', and 'Solution'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Introducing Solution Maker 2.0: new features and support for Visual Studio 11</title><link>http://bloggingabout.net/blogs/vagif/archive/2012/03/31/introducing-solution-maker-2-0-new-features-and-support-for-visual-studio-11.aspx</link><pubDate>Sat, 31 Mar 2012 12:00:47 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:577434</guid><dc:creator>VagifAbilov</dc:creator><description>&lt;p&gt;A couple of years ago I wrote a utility that could scan directories and generate solution files (I blogged about it &lt;a href="http://bloggingabout.net/blogs/vagif/archive/2009/08/04/utility-to-generate-visual-studio-solution-file-for-a-group-of-projects.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://bloggingabout.net/blogs/vagif/archive/2009/12/03/utility-to-generate-solution-files-can-now-create-solution-folders.aspx"&gt;here&lt;/a&gt;). I called it Solution Maker and later made its source available at &lt;a href="https://bitbucket.org/object/solutionmaker/overview"&gt;BitBucket&lt;/a&gt;. I received feedback from users that helped me come with new features. And since developers are already using Visual Studio 11 preview, it was good time to add support for it. So this post is about new version of Solution Maker that can be downloaded from &lt;a href="http://visualstudiogallery.msdn.microsoft.com/48b12951-a351-4341-bc1f-474f2f468053?SRC=Home"&gt;Visual Studio Gallery&lt;/a&gt; (and of course from &lt;a href="https://bitbucket.org/object/solutionmaker/downloads"&gt;BitBucket&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;To show what can be achieved using Solution Maker, I’ve chosen a large project that builds assemblies familiar to every .NET developer: ASP.NET. Microsoft recently turned it into an open-source project and &lt;a href="http://aspnetwebstack.codeplex.com/"&gt;uploaded to CodePlex&lt;/a&gt;. Let’s point Solution Maker to its root folder and see what we can do.&lt;/p&gt;  &lt;p&gt;When you start Solution Maker, it comes with a screen showing setting for a solution to be generated. We want to create a solution for ASP.NET Web Stack, so we will choose the name for a new solution (“AspNetWebStack”) and browse for a project root folder:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/7317.SolutionMaker01_5F00_022751B3.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SolutionMaker01" border="0" alt="SolutionMaker01" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/7673.SolutionMaker01_5F00_thumb_5F00_7BB009BD.png" width="795" height="413" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If we just want a flat project structure (and for small solutions this may sufficient), we don’t need to do anything else and can just click on “Create Solution” button. However, solutions tend to grow, and this where solution folders help splitting projects into logical groups. Solution Maker can automate this process by analyzing project and output assembly names. Let’s start however with a flat structure just to show what we will get in case we don’t want to create solution folders. Click on “Preview” button and Solution Maker will display a new window with a solution preview.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/1121.SolutionMaker02_5F00_011E7A62.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SolutionMaker02" border="0" alt="SolutionMaker02" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/4848.SolutionMaker02_5F00_thumb_5F00_60973AAF.png" width="443" height="523" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;What we see here is 44 projects without any grouping. Not a very convenient structure. Let’s try to improve it a bit: set “Solution folder levels” option to 1, so Solution Maker will parse project names and create solution folders based on the leftmost word in a name of a project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/4111.SolutionMaker03_5F00_1AE28AC4.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SolutionMaker03" border="0" alt="SolutionMaker03" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/0216.SolutionMaker03_5F00_thumb_5F00_60CAAA10.png" width="444" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Looks better, doesn’t it? Note that ASP.NET Web Stack projects are named after the output of their respective assemblies, so you can leave a default naming strategy “Create solution folders based on project file names”. If this choice results in non-informative folder names (for example, if a project for assembly “System.Web.Http” was called just “Http”, then you wouldn’t have a chance to place it in a solution folder “System”), you may try an option “Create solution folders based on project output assembly names”. You can even choose the best of breeds: an option “Create solution folders based on most qualified names” is useful when projects don’t have single naming strategy. Then Solution Maker will analyze their names and assemblies and choose the one that gives the most informative name.&lt;/p&gt;  &lt;p&gt;Now we have 44 projects divided into 4 solution folders, but folder “System” contains 27 projects which may be still too many. Let’s increase the number of solution folder levels. Here is what we will get:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/2402.SolutionMaker04_5F00_45DD76C3.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SolutionMaker04" border="0" alt="SolutionMaker04" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/3173.SolutionMaker04_5F00_thumb_5F00_08D94531.png" width="443" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;What if you only want a subset of projects? This can be achieved using filters. For example, if we want a solution without test projects, we can specify a filter string “*.Test;*.Test.*” in “Project exclude filter” edit box. This will instruct Solution Maker to exclude 25 test projects:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/2656.SolutionMaker05_5F00_23393848.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SolutionMaker05" border="0" alt="SolutionMaker05" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/3175.SolutionMaker05_5F00_thumb_5F00_464595B9.png" width="442" height="384" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So far so good. But until we assumed that the project root contains all project dependencies, and this is not necessarily the case. It can be easily demonstrated by moving the project root folder to one of subdirectories, for example, to “Src\Microsoft.Web.Mvc”. Imagine that we want to create a solution only for MVC stuff. If we now generate a solution file, it will contain just one project:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/0675.SolutionMaker06_5F00_3F72409C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SolutionMaker06" border="0" alt="SolutionMaker06" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/3681.SolutionMaker06_5F00_thumb_5F00_7F0C7761.png" width="442" height="384" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;This is rather silly. Obviously, Microsoft.Web.Mvc has some dependencies, and we want them in the solution. This is the time to enable “Include referenced projects” option:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/0755.SolutionMaker07_5F00_44B10180.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SolutionMaker07" border="0" alt="SolutionMaker07" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/4606.SolutionMaker07_5F00_thumb_5F00_1D0A8556.png" width="441" height="382" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Finally, if you prefer command line or need to integrate solution generation into a build workflow, all Solution Maker options can be specified at the command line:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/3858.SolutionMaker08_5F00_5B8FD2FC.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="SolutionMaker08" border="0" alt="SolutionMaker08" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/3771.SolutionMaker08_5F00_thumb_5F00_519ABBC4.png" width="807" height="403" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Solution Maker is a free open-source projects, so it’s easy to extend it or adjust for your specific needs.&lt;/p&gt;</description></item><item><title>Utility to generate solution files can now create solution folders</title><link>http://bloggingabout.net/blogs/vagif/archive/2009/12/03/utility-to-generate-solution-files-can-now-create-solution-folders.aspx</link><pubDate>Thu, 03 Dec 2009 10:10:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:482534</guid><dc:creator>VagifAbilov</dc:creator><description>&lt;p&gt;If somebody wants more from the program you wrote, it’s a good sign. It means that at last you did something useful :-)&lt;/p&gt;  &lt;p&gt;Recently my colleague mentioned that the &lt;a href="http://bloggingabout.net/blogs/vagif/archive/2009/08/04/utility-to-generate-visual-studio-solution-file-for-a-group-of-projects.aspx" target="_blank"&gt;utility that I wrote to generate project solution file&lt;/a&gt; should support creation of solution folders. Our development team has in total more than 200 projects, and grouping them within the solution makes a lot of sense.&lt;/p&gt;  &lt;p&gt;So I extended the tool, and you can specify number of solution folder levels using “/l” command line switch.&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier;font-size:xx-small;"&gt;&lt;span style="font-size:xx-small;"&gt;GenerateSolutionFile /p &amp;lt;path&amp;gt; /s &amp;lt;solution&amp;gt; [/i includeFilter] [/e excludeFilter] [/l [*]solutionFolderLevels]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;You can specify solution folder levels using an integer number – project names will be split using “.” as separator, and resulting words will be used as solution folder names. Since it’s a good practice to start project name with a name of the company that won’t be useful as a solution folder, it’s possible to skip common project prefix by using an asterisk letter in front of the number specifying the number of levels.&lt;/p&gt;  &lt;p&gt;Here are a few examples. If you generate solution file without instructing the tool to create solution folders, you will get a flat structure of projects:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/6254.Folders1_5F00_6B19FD47.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Folders1" border="0" alt="Folders1" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/1638.Folders1_5F00_thumb_5F00_02480877.png" width="207" height="95" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier;font-size:xx-small;"&gt;&lt;span style="font-size:xx-small;"&gt;&lt;span style="font-family:tahoma;font-size:x-small;"&gt;If you add a command line switch “/l 1”, then the program will extract a first word from compound project names and create a root solution folder:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/2313.Folders2_5F00_56973E7A.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Folders2" border="0" alt="Folders2" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/0486.Folders2_5F00_thumb_5F00_3D2F3B40.png" width="227" height="116" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can add number of levels with “/l 2” switch:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/5381.Folders3_5F00_51B48ABE.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Folders3" border="0" alt="Folders3" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/2860.Folders3_5F00_thumb_5F00_6639DA3C.png" width="244" height="125" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To skip “MyCompany” from solution folder tree add an asterisk when specifying number of folder levels: “/l *1”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/1778.Folders4_5F00_1A6E0383.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Folders4" border="0" alt="Folders4" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/3056.Folders4_5F00_thumb_5F00_680A3003.png" width="228" height="113" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And of course you can increase number of levels, here’s how it looks when using “/l *2” switch:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/3617.Folders5_5F00_4EA22CC9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Folders5" border="0" alt="Folders5" src="http://bloggingabout.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vagif.metablogapi/0724.Folders5_5F00_thumb_5F00_7C234C8C.png" width="244" height="159" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;</description></item><item><title>Utility to generate Visual Studio solution file for a group of projects</title><link>http://bloggingabout.net/blogs/vagif/archive/2009/08/04/utility-to-generate-visual-studio-solution-file-for-a-group-of-projects.aspx</link><pubDate>Tue, 04 Aug 2009 21:20:00 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:482001</guid><dc:creator>VagifAbilov</dc:creator><description>&lt;p&gt;I wanted to analyze our company projects with NDepend and ran NDepend on a couple of our solutions. While it produced very interesting reports (I will try to cover results of NDepend analysis in one of my following posts), I&amp;#39;ve found that the solution contents were not optimal for such analysis. When analyzing project dependencies, you want to be specific about what projects are used as input. In our case every solution contains unit/integration test projects - actually nearly half of our projects are test projects, and inclusion of test projects in dependency analysis can give wrong impression about code usage: for example, some obsolete code may be reported as code in use, even though it is only called from tests. So I wanted to limit the projects being analyzed gathering all projects used in production and only them. I didn&amp;#39;t have a solution that would satisfy me, so I decided that the easiest would be to find a utility that generates a Visual Studio solution file by scanning all projects within the specified root. Expecting to find such program on the net, I searched the Web with search pattern &amp;quot;generate visual studio solution&amp;quot;. Nothing useful. I&amp;#39;ve extended the pattern with &amp;quot;utility&amp;quot;, but still no luck. I still refuse to believe that nobody wrote and published such simple thing, I must have failed with good search pattern. Anyway, now I have such utility - I had to write it myself. It&amp;#39;s very simple and does the following: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Generates a solution file (.sln) that can be opened with Visual Studio 2008 (sorry, no VS 2005 support, but it’s a matter of changing two lines in the source); &lt;/li&gt;    &lt;li&gt;Includes in a solution file references to all C# projects (sorry, no VB) that reside in subfolders of a given root; &lt;/li&gt;    &lt;li&gt;Inclusion and exclusion filters can be specified in a command line. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The application and its source code can be downloaded from here. Here are examples of usage:&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier;font-size:xx-small;"&gt;GenerateSolutionFile.exe      &lt;br /&gt;Usage: GenerateSolutionFile /p &amp;lt;path&amp;gt; /s &amp;lt;solution&amp;gt; [/i includeFilter] [/e excludeFilter]&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier;font-size:xx-small;"&gt;GenerateSolutionFile.exe /p C:\Projects\Lfx /s C:\Projects\Lfx\Test.sln      &lt;br /&gt;Added project Lfx.ConfigReader.csproj       &lt;br /&gt;Added project Lfx.Core.csproj       &lt;br /&gt;Added project Lfx.Core.TestAssemblyConfig.csproj       &lt;br /&gt;Added project Lfx.Core.TestConfiguration.csproj       &lt;br /&gt;Added project Lfx.Core.Tests.csproj       &lt;br /&gt;Added project Lfx.Data.csproj       &lt;br /&gt;Added project Lfx.Data.Tests.csproj       &lt;br /&gt;Added project Lfx.Global.csproj       &lt;br /&gt;Added project Lfx.Global.Tests.csproj       &lt;br /&gt;Added project Lfx.Msmq.csproj       &lt;br /&gt;Added project Lfx.Msmq.Tests.csproj       &lt;br /&gt;Added project Lfx.Services.csproj       &lt;br /&gt;Added project Lfx.Services.Tests.csproj       &lt;br /&gt;Added project Lfx.TestUtils.csproj       &lt;br /&gt;Solution is generated, 14 projects added&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier;font-size:xx-small;"&gt;GenerateSolutionFile.exe /p C:\Projects\Lfx /s C:\Projects\Lfx\Test.sln /i Core\*      &lt;br /&gt;Skipped project Lfx.ConfigReader.csproj       &lt;br /&gt;Added project Lfx.Core.csproj       &lt;br /&gt;Added project Lfx.Core.TestAssemblyConfig.csproj       &lt;br /&gt;Added project Lfx.Core.TestConfiguration.csproj       &lt;br /&gt;Added project Lfx.Core.Tests.csproj       &lt;br /&gt;Skipped project Lfx.Data.csproj       &lt;br /&gt;Skipped project Lfx.Data.Tests.csproj       &lt;br /&gt;Skipped project Lfx.Global.csproj       &lt;br /&gt;Skipped project Lfx.Global.Tests.csproj       &lt;br /&gt;Skipped project Lfx.Msmq.csproj       &lt;br /&gt;Skipped project Lfx.Msmq.Tests.csproj       &lt;br /&gt;Skipped project Lfx.Services.csproj       &lt;br /&gt;Skipped project Lfx.Services.Tests.csproj       &lt;br /&gt;Skipped project Lfx.TestUtils.csproj       &lt;br /&gt;Solution is generated, 4 projects added&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier;font-size:xx-small;"&gt;GenerateSolutionFile.exe /p C:\Projects\Lfx /s C:\Projects\Lfx\Test.sln /e Core\*      &lt;br /&gt;Added project Lfx.ConfigReader.csproj       &lt;br /&gt;Skipped project Lfx.Core.csproj       &lt;br /&gt;Skipped project Lfx.Core.TestAssemblyConfig.csproj       &lt;br /&gt;Skipped project Lfx.Core.TestConfiguration.csproj       &lt;br /&gt;Skipped project Lfx.Core.Tests.csproj       &lt;br /&gt;Added project Lfx.Data.csproj       &lt;br /&gt;Added project Lfx.Data.Tests.csproj       &lt;br /&gt;Added project Lfx.Global.csproj       &lt;br /&gt;Added project Lfx.Global.Tests.csproj       &lt;br /&gt;Added project Lfx.Msmq.csproj       &lt;br /&gt;Added project Lfx.Msmq.Tests.csproj       &lt;br /&gt;Added project Lfx.Services.csproj       &lt;br /&gt;Added project Lfx.Services.Tests.csproj       &lt;br /&gt;Added project Lfx.TestUtils.csproj       &lt;br /&gt;Solution is generated, 10 projects added&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier;font-size:xx-small;"&gt;GenerateSolutionFile.exe /p C:\Projects\Lfx /s C:\Projects\Lfx\Test.sln /e Core\* /e *.Tests      &lt;br /&gt;Added project Lfx.ConfigReader.csproj       &lt;br /&gt;Skipped project Lfx.Core.csproj       &lt;br /&gt;Skipped project Lfx.Core.TestAssemblyConfig.csproj       &lt;br /&gt;Skipped project Lfx.Core.TestConfiguration.csproj       &lt;br /&gt;Skipped project Lfx.Core.Tests.csproj       &lt;br /&gt;Added project Lfx.Data.csproj       &lt;br /&gt;Skipped project Lfx.Data.Tests.csproj       &lt;br /&gt;Added project Lfx.Global.csproj       &lt;br /&gt;Skipped project Lfx.Global.Tests.csproj       &lt;br /&gt;Added project Lfx.Msmq.csproj       &lt;br /&gt;Skipped project Lfx.Msmq.Tests.csproj       &lt;br /&gt;Added project Lfx.Services.csproj       &lt;br /&gt;Skipped project Lfx.Services.Tests.csproj       &lt;br /&gt;Added project Lfx.TestUtils.csproj       &lt;br /&gt;Solution is generated, 6 projects added&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier;font-size:xx-small;"&gt;UPDATE. I have extended the utility to create solution folders. See &lt;a title="this blog post" href="http://bloggingabout.net/blogs/vagif/archive/2009/12/03/utility-to-generate-solution-files-can-now-create-solution-folders.aspx"&gt;this blog post&lt;/a&gt;.      &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</description></item></channel></rss>