Visual Studio编辑器看不到我生成的类型

本文关键字:类型 Studio 编辑器 看不到 Visual | 更新日期: 2023-09-27 18:17:54

使用Cecil,我正在修改一个特定项目的程序集,以包括一些额外的接口。这是从我的项目文件中的AfterBuild目标触发的,它调用一个自定义任务。这很好。生成的程序集被按原样修改。

然而,我有另一个项目,它依赖于正在修改其程序集的项目。当在Visual Studio 2013代码编辑器中工作时,Visual Studio似乎根本没有选择我生成的类型,即使构建工作得很好。

我已经尝试直接引用生成的程序集而不是项目,但结果是相同的。不知何故,编辑器看不到构建所看到的内容。

是什么原因导致的?我如何让编辑器挑选出这些类型?

编辑:看起来问题不是visual studio本身,而是resharper。当我挂起resharper时,编辑器不再显示任何红色符号,也不会抱怨无法解析的符号。

现在的问题是,如何让resharper拾取生成的类型?

Visual Studio编辑器看不到我生成的类型

如果在当前解决方案中加载了修改后的程序集的项目,ReSharper将使用源代码来提供符号,因此它不会看到生成的接口。如果不包含项目,并且程序集只是一个简单的文件引用,那么ReSharper将从程序集的IL +元数据中提取符号,在这种情况下,生成的接口应该是可见的。

我刚刚遇到了同样的问题。以下是Jetbrain论坛中报告的问题:

ReSharper IntelliSense ANTLR支持

在评论中,你可以找到解决方案:一个名为外部代码的Resharper扩展。

这对我有用。尽管在每次构建之后,VS都会询问是否重新加载(生成的)在VS之外修改的源代码,这有点不方便。

如果Resharper感到困惑,那么您可以尝试清除缓存:Resharper -> Options... -> Environment -> General并单击Clear Caches按钮。