VS2022中C#跳转C++/CLI类型定义时反编译而非跳转至源码
解决VS2022中C#跳转C++/CLI类型定义的问题
以下是几个实测有效的解决步骤:
检查C++/CLI项目的调试信息配置
右键C++/CLI项目→属性→配置属性→C/C→常规,把“调试信息格式”设置为程序数据库(/Zi),Debug和Release配置都要调整,Release模式下别选仅限程序数据库(/Z7);接着到“链接器→调试”,确保“生成调试信息”设为是(/DEBUG)。没有正确的调试数据库,VS没法关联到C/CLI的源码。修正C#项目的引用设置
在引用了C++/CLI项目的C#项目里,右键该项目引用→属性,把“复制本地”改成False,同时“特定版本”设为False。如果C#项目输出目录里有C++/CLI的DLL,VS会优先读这个DLL的元数据,而不是直接关联源码项目。彻底清理重建解决方案
先点VS顶部菜单的“生成→清理解决方案”,然后选“生成解决方案”;之后关闭VS,删掉解决方案目录下的.vs隐藏文件夹,还有所有项目的bin、obj目录,重新打开VS再生成一次。旧的编译缓存经常会导致IntelliSense识别异常。重置IntelliSense缓存
打开VS→工具→选项→文本编辑器→C#→高级,点击“重新解决项目”按钮;或者直接按Ctrl+Shift+R重载项目的IntelliSense信息,强制VS重新识别项目间的依赖关系。确认项目框架和输出类型一致
确保C++/CLI项目的输出类型是类库(.dll),且目标框架和所有C#项目一样都是.NET 6,框架版本不匹配也会导致跳转失效。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

