How to attach sources to referenced assembly in Vi

2019-03-14 08:33发布

问题:

I am fairly new to Visual Studio, coming from Java development on Eclipse. Among other things I sorely miss from Eclipse is an ability to view source of binary assemblies.

In Eclipse I can attach reference to source code for a referenced jar and after that it is dead easy to navigate to the source, add breakpoints and debug those as though I have the libraries in my workspace.

Up to this point I have not managed to attach source code to an assembly reference.

Is it possible? How do I go about doing that (given that I do have access to the source code for this library)?

回答1:

Using VS2010 - you will first need to compile your referenced assemblies with debug symbols.

A couple of options are then:

  1. Find an object which you want to debug in Object Browser. Right click -> Navigate To -> Sources From Symbol Files.
  2. Step through your code until you step into the referenced assembly. At this point a dialog will pop up asking where the source files are. If it doesn't, or you cancelled it, then a "Browse to Find Source" will appear on the right. If this is greyed out, then that may be because you are referencing a release assembly.


回答2:

If you use ReSharper, you can enable it by going to ReSharper / Options / External Sources, and move up "Sources from symbol files". Then in the tab "Sources from symbol files", click "Advanced" and there you can map source folders.

This is a copy of the answer here, but I wanted to include it here so if you, the reader, have stumbled upon this link you have the answer too.



回答3:

The quickest way: If you have source code to these assemblies. Add that source code as a new project to your current solution so that the assembly project and your referencing project are part of single solution.

Now add reference to assembles in assembly project from Add reference and select 'Projects' tab.

Put breakpoints in your assembly source code, and start debugging and have fun!.

Use 'step into' or F11 and breakpoints will be hit when referenced in source code.