Announcing NuGet and OpenWrap integration

It's been a while since we posted here, but now we're ready to share what we've been preparing in the mean time. We hope that you're using SymbolSource in your daily work and haven't noticed the inherent delays in symbol/source publishing that happen after project releases. We are doing our best to keep up, but this is a game that simply cannot be won.

However, with the new features that we are announcing today there will be no need for such a chase anymore.

From now on anyone will be able to upload symbols and sources, and it applies especially to NuGet and OpenWrap package maintainers. If you are one, we invite you to join the beta program and let us know you'll be publishing on behalf of a particular project. Uploaded packages will appear on our website at:

and will be accessible for everyone from Visual Studio's debugger. We can also setup a private beta under a separate authentication realm, if you like.

The process is simple and doesn't require any additional tools apart from the package manager that you already use - be it NuGet or OpenWrap. Read below for instructions on each.

If you are interested, contact us on Google Groups or twitter me personally @TripleEmcoder.


If you use NuGet, you will need to create a package as usual (but pay attention not to include symbol files) and then create a copy with *.pdb files included alongside all of the binaries and also a copy of the source tree used to compile them in a top-level src folder. After that you can publish the first one to NuGet with their API key, and the second one to SymbolSource with a key that we will assign to you as part of the beta program.

To sum up:

  1. Create a regular NuGet package with lib and content folders (no *.pdb files!):

    nuget pack <nuspec-file>

  2. Upload the package to NuGet.

    nuget push <package-file> <nuget-api-key> -source <nuget-repo-url>

  3. Add *.pdb files to corresponding lib folders and an src folder with an export of the source tree (no bin and obj directories!)

  4. Create the second package:

    nuget pack <nuspec-file>

  5. Upload the second package to SymbolSource:

    nuget push <package-file> <symbolsource-api-key> -source

Of course you can reverse the process and create a package with everything from the start and then just remove symbols and sources with a ZIP tool before sending them to the NuGet repository.


The first step to take before using OpenWrap with SymbolSource is to register a new package repository:

o add-remote symbolsource

The SymbolSource repository will only be used for publishing, it doesn't provide any packages for OpenWrap to download. The rules for creating wraps are the same as the ones for NuGet. Send a binary/content only package to the OpenWrap repository and a binary/symbol/source package to SymbolSource.

The process is as follows:

  1. Create a standard OpenWrap package:

    o build-wrap

  2. Remove *.pdb files using a ZIP tool.

  3. Send the package to OpenWrap:

    o publish-wrap -path <package-file> -remote openwrap

  4. Prepare a second package with symbols and source:

    • add *.pdb files back to bin folders,
    • add an export of the source tree as an src folder.
  5. Send the second package to SymbolSource:

    o publish-wrap -path <wrap-file> -remote symbolsource --user <username> -pwd <password>

We also know from a reliable source that later this week OpenWrap will make this process as simple as executing one or two commands. Stay tuned!

Posted by Marcin Mikołajczak (TripleEmcoder) on Monday, January 31, 2011

blog comments powered by Disqus