Although there is often some debate regarding its pronunciation, I believe that most of us can agree that NuGet is pretty great.
In the past few years, NuGet has become one of the easily and most commonly used tools within a .NET Developers bag of tricks and rightfully so. Long gone are the days of searching for a DLL file in some shady site and hoping that it doesn’t brick your application. Now you can find just about every possible reference you would want to include within your application in just a few clicks (and letting it sort out all of the dependencies).
Most developers have likely interacted through NuGet within Visual Studio, however this post is going to introduce another way to interact, explore and even publish your own NuGet packages called the NuGet Package Explorer.
What is the NuGet Package Explorer?
The NuGet Package Explorer is a open-source product of NuGet developer Luan Nguyen and was developed as an extremely user-friendly GUI application for easily creating and exploring NuGet packages. After installing the ClickOnce application, you can simply double-click on a NuGet Package file (.nupkg) to access all of its content or you can load packages directly from the official NuGet feed.
How to use it?
First, you’ll need to visit the NuGet Package Explorer page on CodePlex, where the tool is currently available and download it. After a short download, you can launch the ClickOnce application and be presented with the following screen :
These are your primary options when it comes to creating or exploring the contents of any available NuGet packages (in addition to simply clicking on any NuGet Package files as mentioned earlier). The easiest approach to get started would probably be to open up a package from the feed, which will present you with a searchable dialog with all of the most popular NuGet packages :
After clicking on a package, you can choose the particular version you wanted to explore :
You also have the option of manually opening up any packages that you might have locally installed, but simply grabbing them from the feed is usually going to be the way to go.
Exploring a Package
Once you select a package that you want to explore a bit more, you can just double-click on it to present the details about that package :
While exploring a package, you’ll see many of the summaries, details and descriptions that you might be accustomed to seeing when managing your NuGet packages through Visual Studio along with a bit more.
You’ll see an area called Package Contents, which display all of the files that are contained within the package and it can help give you an idea of the different versions of the framework that it targets, any transformations that will be applied to configuration files and any additional utilities or executables that might be run when the package is installed :
This is where you can really actually explore the packages by digging into the contents a bit more. By simply double-clicking on a file within the contents, you will be shown a preview (if available) of the contents :
This can be done for just about any kind of file that would normally support previews and it can be extremely useful if you wanted to see exactly what is going down inside some of these packages.
Creating a NuGet Package
The Package Explorer isn’t limited to just exploring existing packages. It provides a very easy-to-use interface to allow you to create your own packages and upload them to NuGet to share with others.
With a simple click of the File > New option menu or by using the CTRL+N shortcut :
You’ll be transported to a new package screen to begin building your own NuGet Package. You can click the Edit Metadata icon to begin actually editing information about your package :
You can find a complete reference of all of the available fields listed above and exactly what they are used for by visiting the Nuspec Reference page here.
After defining all of your metadata, supported assemblies and dependencies, you will then be ready to add your files and content to your packages. You can do this by just clicking a file within the File Explorer and dragging it into the Package Contents area on the left :
All of the DLL files that are entered will be placed into the lib directory and all other basic content will be placed into an aptly named content directory as seen below :
Additionally, if you need to add other folders (or any other “special” types of folders), you can do so by using the Content menu :
You can continue to add all of the additional files and folders for your package in this same manner until your package is complete.
Publishing to NuGet
Publishing to NuGet is fairly simple after you have build your package.
The first thing that you’ll need to do is Register and Sign In to the NuGet Gallery, which takes a matter of seconds. This will provide you with an API key that you will need to use in order to publish packages to NuGet :
After you have your API Key, you’ll just need to use the Publish option (File > Publish) within the NuGet Package Explorer :
Just enter in your API Key in the Publish dialog and hit Publish and you are done!