Search code examples
c#debuggingvisual-studio-2015dynamics-crm-2016ilmerge

VS2015 Breakpoint bind successful but after some rows failed to bind


In one file I can bind breakpoint up to certain position but not after some specific row.

For example I can bind within function first x rows, but trying to set breakpoint further I get "The breakpoint failed to bind". If i step through rows, I can do it only up to the point I can successfully bind.

This is after I merged assembly with ILMerge. Before merge it was working OK. The symbols are loaded successfully (but after I manually right click on module and click Load Symbols). Symbols get loaded that ilmerge has provided.

Using reflection I could verify the class I ILMerged is available (Newtonsoft JSON)

For full picture: Assembly is used within Dynamics CRM and DLL is published to database, if that makes any difference. I am using Remote Debugger if that makes difference.

Where should I dig further? What could cause it to behave like that?

A picture may be worth thousand words

enter image description here

ILMerge details

[XrmToolkit v4.5.2.1] -- <Info> -- 29.05.2017. 10:24:06 -- Merging the assemblies using ILMerge...
[XrmToolkit v4.5.2.1] -- <Info> -- 29.05.2017. 10:24:06 -- ILMerge Output Directory: \ILMerge
[XrmToolkit v4.5.2.1] -- <Info> -- 29.05.2017. 10:24:06 -- Using ILMerge to merge assemblies.
[XrmToolkit v4.5.2.1] -- <Info> -- 29.05.2017. 10:24:06 -- ILMerge location: C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe
[XrmToolkit v4.5.2.1] -- <Info> -- 29.05.2017. 10:24:06 -- ILMerge output path: C:\Users\#removed#\Development\Source\CRM\#removed#\#removed#\bin\Debug\ILMerge\#removed#.dll
[XrmToolkit v4.5.2.1] -- <Info> -- 29.05.2017. 10:24:06 -- ILMerge arguments: /lib:"C:\Users\#removed#\Development\Source\CRM\#removed#\#removed#\bin\Debug" /lib:"C:\Users\#removed#\Development\Source\CRM\#removed#\packages\Microsoft.CrmSdk.CoreAssemblies.8.1.0.2\lib\net452" /lib:"C:\Users\#removed#\Development\Source\CRM\#removed#\packages\Microsoft.CrmSdk.Workflow.8.1.0.2\lib\net452" /target:library /keyfile:"C:\Users\#removed#\Development\Source\CRM\#removed#\#removed#\#removed#.snk" /copyattrs /targetplatform:v4,"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5" /closed /log:"C:\Users\#removed#\Development\Source\CRM\#removed#\#removed#\bin\Debug\ILMerge\#removed#.log" /out:"C:\Users\#removed#\Development\Source\CRM\#removed#\#removed#\bin\Debug\ILMerge\#removed#.dll" "C:\Users\#removed#\Development\Source\CRM\#removed#\#removed#\bin\Debug\#removed#.dll" "C:\Users\#removed#\Development\Source\CRM\#removed#\packages\Newtonsoft.Json.10.0.1\lib\net45\Newtonsoft.Json.dll" 

Solution

  • Looks like it has something to do with the 3rd party ILMerged assembly.

    For debugging to work, I deployed 3rd party assembly to GAC and didn't merge until I want to build a release version for deployment for which debugging isn't necessary.