microsoft / slngen

Visual Studio solution generator
MIT License
369 stars 78 forks source link

SlnGen

Build Status

Overview

SlnGen is a Visual Studio solution file generator. Visual Studio solutions generally do not scale well for large project trees. They are scoped views of a set of projects. Enterprise-level builds use custom logic like traversal to convey how they should be built by a hosted build environment. Maintaining Visual Studio solutions becomes hard because you have to keep them in sync with the other build logic. Instead, SlnGen reads the project references of a given project to create a Visual Studio solution on demand. For example, you can run it against a unit test project and be presented with a Visual Studio solution containing the unit test project and all of its project references. You can also run SlnGen against a traversal project in a rooted folder to open a Visual Studio solution containing that view of your project tree.

Getting Started - .NET Core Global Tool (Recommended)

NuGet package NuGet downloads

To install SlnGen, run the following command:

dotnet tool install --global Microsoft.VisualStudio.SlnGen.Tool --add-source https://api.nuget.org/v3/index.json --ignore-failed-sources

Once installed, .NET Core will add slngen to your PATH so you can run it from any command window:

slngen --help

More documentation is available at https://microsoft.github.io/slngen/.

Getting Started - MSBuild Target

NuGet package NuGet downloads

The MSBuild target must be installed as a NuGet package and restored. This can slow down the process so a .NET Core tool might be preferable.

Install the package to an individual project (not recommended):

 Install-Package Microsoft.VisualStudio.SlnGen

Or add it your Directory.Build.props:

<ItemGroup>
  <PackageReference Include="Microsoft.VisualStudio.SlnGen" Version="<Latest Version>" />
</ItemGroup>

Generate and open a Visual Studio solution with MSBuild:

> MSBuild /Restore /t:SlnGen

You can also create a DOSKEY alias as a shortcut

> doskey slngen=msbuild /nologo /v:m /t:slngen

More documentation is available at https://microsoft.github.io/slngen/.

Contributing

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.