警告:几周前我已在 Reddit 上发布了此内容,但从未得到回复。
我从第三方获得了一个大型 .NET 解决方案,但我遇到了以下问题:
PackageReference
或 ProjectReference
中定义的命名空间导入的符号,右键单击 > 转到定义,将导致以下弹出窗口:
对于属于引用的命名空间(DLL、项目或 NuGet 包)的符号,
设置
.vs
我终于明白了。方法如下:
在其他(第三方)解决方案所在的目录中创建了一个空的虚拟解决方案
ConsoleApp1
一个名为
ClassLibrary1
Class1
的类
ClassLibrary1
ConsoleApp1
,并在
Program.Main
中添加了引用
Class1
的代码
观察到
Class1
ConsoleApp1
符号未突出显示且不可导航,与我的实际用例类似。
确保我的虚拟解决方案构建时没有错误。
Directory.Build.props
Class1
仍然无法导航。
Directory.Build.props
文件还导入了
Directory.Build.targets
文件,所以我也删除了它。你瞧,
Class1
亮起绿色并可导航。然后我恢复了
Directory.Build.targets
,
Class1
不再可导航,我开始从
Directory.Build.targets
删除各种属性和项目组,直到我确定了有问题的行:
<PropertyGroup>
<DisableRoslynDesignTime Condition="...">true</DisableRoslynDesignTime>
</PropertyGroup>
事实证明,由于项目中的大多数其他开发人员都使用 Resharper,他们希望在设计时关闭 Roslyn,因为 Resharper 有自己的分析器。由于我不喜欢使用 Resharper,因此我针对这个特定的解决方案禁用了它。有一篇文章
详细介绍了此配置选项。