为什么调试C#项目会显示C ++ / CLI符号?

我对一些C#库和控制台项目(但不是我从头创建的那些)有一个奇怪的问题,他们使用C ++ / CLI表示法显示手表和智能标签进行调试(例如,显示System::Object^在哪里我期望System.Object ):

C ++调试智能标记

我已经尝试更改项目guids,因为我认为这是问题(有些已经改变),删除obj / debug文件夹,重新启动Visual Studio 2010,修复Visual Studio 2010甚至旧的collections重新启动Windows。

是否有任何明显的设置我错过了以某种方式被启用?

我也遇到了这个问题,调试器在所有c#项目中都选择了c#和c ++。 我正在运行Windows 7 64位。

我通过转到快捷方式属性的兼容性选项卡解决了这个问题。 它被检查为运行为Windows XP Service Pack 3.我取消选中它仍然保持运行管理员检查。 突然,我的调试器再次选择了所有这些作为c#。

由于评论中的这个链接提供了微软的回答 – “无法重现”我不得不卸载Visual Studio 2010并重新安装它(事实上我重新成像了我的机器)。

关闭此处显示的“HEX”选项确实关闭了hex地址,但没有关闭C ++ / CLI显示。