"The standard way to create NuGet packages today is to:
- Create a nuspec file with all the metadata and package dependencies
- Lay out the files that to want to include
- Run ‘nuget pack’ to create the package
- Run ‘nuget push’ to push them to the gallery
See Phil’s post more more details on those steps.
While this is pretty straightforward, it can be made yet easier if we take advantage of the fact that your VS project already contains a lot of information that shouldn’t have to be repeated.
Today, we are releasing a new nuget.exe feature of that makes this a lot easier.
Debugging support via SymbolSource.org
The other really exciting thing we’d like to announce today is that we have partnered with the folks at http://www.symbolsource.org/ to offer a really simple way of publishing your sources and PDB’s along with your package.
Up until now, there really wasn’t a great way for package authors to let their users debug into the package’s binaries. The user would have needed to download the sources separately from wherever the project is hosted, making sure that they exactly match the state of the binary. They would also need to locate the matching PDBs. That’s pretty hard to get right, and most users would generally not bother.
Now with almost no additional effort, package authors can publish their symbols and sources, and package consumers can debug into them from Visual Studio.
What the package author needs to do
Let’s first play the part of the author of a package that contains an assembly, which itself makes use of a library from another package. Let’s say that other package is Clay as an example.
What the package Consumer needs to do
Now let’s play the part of the package Consumer that uses this package. Here I’ll demonstrate using a simple Console app, though the steps apply equally well to other apps.
Important note: these steps are more interesting when done on a different machine than the ‘Package Author’ steps! If you do them on the same machine, rename or delete the Author project to make sure VS doesn’t take any shortcuts on you when debugging (which it will!).