All NuGet users are probably familiar with both the Manage NuGet Packages dialog and the Package Manager Console. These are the main user interfaces for installing and managing packages.
However, NuGet is also used in a couple of more subtle places. Below are a few of them that I am aware of. With the exception of the New Project dialog, these dialogs/commands invoke NuGet through the well-documented MEF services that NuGet exports.
- New Project dialog
When you create a new Web Application project, either a Web Forms or MVC app, the project template invokes NuGet to install a set of pre-defined packages into the new project.
This feature is publicly documented here: http://docs.nuget.org/docs/reference/packages-in-visual-studio-templates. Which means it’s not only available to Microsoft templates, but to any Visual Studio template.
- Add Service Reference dialog
When you open the Add Service Reference dialog to add a reference to a WCF Data Service endpoint, the tool uses NuGet to install the latest version of the Microsoft.Data.Services.Client package and its dependencies.
- Publish dialog
If you attempt to publish your web app to Windows Azure, the Publish dialog detects if your project is using SqlMembership provider, and if so, will ask you to upgrade to Universal provider in order to work with SQL Azure. If you accept, it will install the Microsoft.AspNet.Providers and Microsoft.AspNet.Providers.Core packages, as well as configure your web.config to use the Universal provider.
- Enable Azure Authentication command
If you enable Windows Azure Active Directory authentication in your web app, the command will install the System.IdentityModel.Tokens.ValidatingIssuerNameRegistry package.
- Add Windows Azure Cloud Service project command
The Add Windows Azure Cloud Service project command, which appears on the context menu for Web projects, uses NuGet to install the WindowsAzure.Storage and Microsoft.WindowsAzure.ConfigurationManager packages.
I’m very happy to see various teams in Microsoft take advantage of NuGet to implement their own features. I expect even more widespread usage of NuGet in future versions of Visual Studio.