Learn More





DNN Community Blog

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

DotNetNuke Symbol files and Intellisense

cymbal For the past 7 years, the DotNetNuke project has provided various packages for users to simplify different installation and upgrade scenarios.  Each package was built to address specific requests from the community.  We have recently begun receiving requests for symbol files (.pdb files) and xml comments.  As a result of these requests, starting with DotNetNuke 5.2.0, we will be releasing a new Symbols package with each release.

The first set of files included in the Symbols package are all of the .PDB files for the core framework.  Essentially, any project which is included in the default solution file will generate a .pdb file that will be available in this package.  Many developers have long assumed that .pdb files were only generated for debug builds, however, that does not have to be the case.  It is possible, and even desirable, to generate .pdb files for release builds as well.  To generate the pdb files follow the steps outlined below:

  1. Open the Project Properties
  2. Select the Compile tab
  3. Set the configuration mode to Release
  4. Click on the Advanced Compile Options button
  5. Set the “Generate debug info” to “pdb-only”

You should see a screen similar to the image below.


Most users will never need the pdb files for their installation, however, if you are troubleshooting error messages in your event log then the pdb files will provide additional information which can aids in troubleshooting.  To see how pdb files can help, lets look at a sample error message from the event log:

Error- No PDB

While there is some useful information in this error message in the stack trace, it just gives you a list of classes and methods to look through.  If your methods are not granular enough, just knowing the method may not be enough.  If you have installed the pdb files into your DotNetNuke installation then you will receive additional information in your stack trace as shown below.

Error- With PDB


Notice in the highlighted section that I now have an exact line number where the error occurred in the DotNetNuke source code.  This greatly simplifies identifying the root cause of errors and makes it much easier to take corrective action.  This is just one of the uses for pdb files, but is a great benefit when trying to isolate and troubleshoot problems in a production environment

In addition to symbol files, the new Symbols package will include XML Comments that are generated as part of the build process.  The XML Comments will be used in the near future to create detailed API documentation for the core DotNetNuke framework.  In addition to their usefulness in creating documentation, they are also useful when you are writing code that uses the core API.  Lisa Feigenbaum has a great article in the May 2009 issue of MSDN magazine that fully explains the benefits of the XML Comments files. 

Over the coming months, the new DotNetNuke Reference team will be going through and helping to get the core framework documented with XML Comments.  This will allow us to provide more useful Intellisense and complete API reference documentation that also includes code samples for how to use various portions of the API.

The first version of the Symbols package which was released today along with DotNetNuke 5.2.0 Beta 5 requires you to unzip the files over the top of your existing DotNetNuke installation.  It doesn’t matter if you are using the Install, Upgrade, Source, or StarterKit package for creating your DotNetNuke installation.  The only requirement is that the Symbol files are only valid for the specific version where they were generated.  This means that you cannot use the 5.2.0 Beta 5 symbols with any release other than Beta 5.

We are working on updating the Symbols package so that in the final 5.2.0 release you will be able to install and uninstall the Symbols package from the Host/Extensions page.  This will make it possible to install Symbols for any installation where you have host access, even if you don’t have full access to the file system for directly uploading files.

In the end, I think this is a good addition to the current set of packages we already provide.  For those who care about symbol files and intellisense, you will be able to use them without much difficulty and install them with whatever package you prefer to use.  For those people who don’t want them, you will be able to continue using the same packages you always have without any size bloat from files which you don’t want.



Comment Form

Only registered users may post comments.


2sic Daniel Mettler (124)
Aderson Oliveira (15)
Alec Whittington (11)
Alex Shirley (10)
Andrew Nurse (30)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (21)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (203)
Chris Paterra (55)
Clinton Patterson (28)
Cuong Dang (21)
Daniel Bartholomew (2)
Dave Buckner (2)
David Poindexter (3)
David Rodriguez (2)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (74)
Geoff Barlow (6)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (269)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matthias Schlomann (15)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Mike Horton (19)
Mitchel Sellers (28)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Peter Donker (52)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott S (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (2)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (37)
Will Strohl (163)
William Severance (5)
Try Evoq
For Free
Start Free Trial
a Demo
See Evoq Live
Need More Information?