<p>I'm absolutely stunned by the fact that MS just couldn't get it right to navigate to the definition of a method, when you're combining C# and VB projects in one solution.  If you're trying to navigate from VB to C#, it brings up the "Object Explorer", and if from C# to VB, it generates a metadata file.</p>

<p>Honestly, what is so complicated about jumping between different languages, especially if they're supposedly using the same CLR?</p>

<p>Does anyone know why this is, or if there's any workaround?
Did they get it right in VS 2008?</p>

<hr>

<p>@Keith, I am afraid you may be right about your answer.  I am truly stunned that Microsoft screwed this up so badly.  Does anyone have any ideas for a workaround?</p>

<hr>

<p>@Mladen Mihajlovic - that's exactly the situation I'm describing.  Try it out yourself; project references don't make a shred of difference.</p>

[{'answer_id': 63560, 'author': 'Keith', 'author_id': 905, 'author_profile': 'https://Stackoverflow.com/users/905', 'pm_score': 3, 'selected': True, 'text': "<p>This is general to both languages.</p>\n\n<ul>\n<li>F12 in VB.Net always takes you to the object browser</li>\n<li>F12 in C# always takes you to a meta-data definition</li>\n</ul>\n\n<p>This is a deliberate mechanism to try and match expected behaviour for upgrading users. The C# way gives you the right information, but the VB way is what users of VBA or VB6 will expect. </p>\n\n<p>The behaviour is the same in VS2008.</p>\n\n<p>These are the rules for external projects, both should take you to the code if it is in the same solution.</p>\n\n<hr>\n\n<p>You're quite right - VB projects treat C# projects as external and vice versa - you can't navigate from code in one to the other. I've tested this in the latest VS2008 and it's still an issue.</p>\n\n<p>It also fails to get complete meta-data. Add a method to your C# code and it won't appear in VB's intellisense until you compile the C# assembly.</p>\n\n<p>This is similar to how components appear in the toolstrip, so I figure the normal navigate to code functionality is a feature of code with a common compilers, and everything else uses some kind of reflection.</p>\n\n<p>As long as you're still building a PDB it should be able to find the files, I guess it doesn't because they need it to support release builds too. It couldn't find the line of code without the PDB lookups. </p>\n"}, {'answer_id': 70928, 'author': 'Mladen Mihajlovic', 'author_id': 11421, 'author_profile': 'https://Stackoverflow.com/users/11421', 'pm_score': 0, 'selected': False, 'text': '<p>Make sure that your reference is to the VB <em>project</em> and not just a DLL file.</p>\n'}, {'answer_id': 21877038, 'author': 'Giulio Caccin', 'author_id': 1636173, 'author_profile': 'https://Stackoverflow.com/users/1636173', 'pm_score': 0, 'selected': False, 'text': '<p><a href="https://connect.microsoft.com/VisualStudio/feedback/details/501303/find-all-references-go-to-definition-do-not-work-across-vb-c-in-same-solution#" rel="nofollow">It\'s a known issue</a>, the workaround are two: use <code>ctrl+,</code> or use some plugin that add this function, like resharper (that will add this function in the <code>F12</code>).</p>\n'}]
['https://Stackoverflow.com/questions/63517', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/7850/']