11

I've recently upgraded some solution(s) to Visual studio 2013. All went OK apart from one which now generates the:

Symbol for the modules 'name' were not loaded.

...error every time I run it.

When I look in the modules debug window I can see against the dll (It's a web service dll)

Name           Path                       Optimised    User Code    Symbol Status
dllName.dll    Tempoary ASP.Net...etc.    Yes          No           Skipped Loading...

If I look in the \bin I see the dll and it's coresponding .pdb file.

Checking the build menu for the project I can see Debug Info: full.

Cut a long story short everything looks fine to me except that it's not loading any symbols.

Any idea what I'm missing?

Update

It looks like if I run my solution though IIS express the issue goes away. But running though IIS (8) I still have this problem.

Liam
  • 27,717
  • 28
  • 128
  • 190

1 Answers1

25

After painfully comparing two project files, one that worked and one that didn't I noticed that the proj that worked had:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  <DebugSymbols>true</DebugSymbols>
  <DebugType>full</DebugType>

  <!-- This works -->
     <Optimize>false</Optimize>
  <!----------------------->

  <OutputPath>bin\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>
</PropertyGroup>

Where as my one had

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  <DebugSymbols>true</DebugSymbols>
  <DebugType>full</DebugType>

  <!-- This DOESN'T -->
     <Optimize>true</Optimize>
  <!----------------------->

  <OutputPath>bin\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>

</PropertyGroup>

By setting the <Optimize> property to false all issues went away.

This answer also seems relevant as the .csproj.user file can be out of sync, I deleted it.

Liam
  • 27,717
  • 28
  • 128
  • 190
  • 2
    I had the same problems when I run azure project in emulator and your suggestion to delete `.csproj.user` worked perfectly. – pvasek Mar 12 '15 at 08:13
  • 2
    You can still have this problem if you do not have an `optimize` element at all; apparently it defaults to true. Once I added `false` to my csproj, my symbols started properly loading. – Ed Schwehm Feb 07 '18 at 19:37