Search code examples
visual-studiodebug-symbolsbuildconfigurationnunit-3.0

Why do custom build configurations fail to load source location data


I am using Visual Studio 2015 Community Edition. In my project, I have NUnit tests covering a variety of projects. The NUnit tests are version 3.0.1, and the test runner is version 3.0.8.0. I have the usual build configurations (Debug and Release) and an additional one of my own creation: Stress. When I build in Debug or Release, everything works fine. However, when I build in Stress, I get the following message in my test output build window:

Unable to create DiaSession for D:\Code\EncounterGen\Tests\Integration\Bootstrap\bin\Stress\EncounterGen.Tests.Integration.Bootstrap.dll
No source location data will be available for this assembly.

This only occurs in my custom build configuration. When I run the tests, all of the normal links are broken - double-clicking on a test does not take you to that method in the test class, the stack trace in the test failure will not take you to the relevant line, etc. I am compiling all projects in the Stress build configuration. I am not sure what the problem is.

Other research suggests that the DiaSession failure is from NUnit, indicating that it can't load source code - which would explain the symptoms, but not the cause. The only articles I could find discussing it only mentioned what it did, nothing regarding problems or errors of why it would not load correctly for NUnit.

This used to be working - I am not sure when this problem started occurring exactly.


Solution

  • The issue turned out to be that my Stress build configuration was not set to generate .pdp files. I had to go into each project, go to the Build tab, click Advanced while Stress was the selected build, and change Debug info from none to full. I suspect that when I created this build for the solution, I copied settings from Release instead of Debug, which is why this occurred.