0

使用 Cecil,我正在修改某个项目的程序集以包含一些额外的接口。这是由我的项目文件中的 AfterBuild 目标触发的,该目标调用自定义任务。这工作正常。生成的程序集将按应有的方式进行修改。

但是,我有另一个项目依赖于正在修改其程序集的项目。在 Visual Studio 2013 代码编辑器中工作时,Visual Studio 似乎根本无法识别我生成的类型,即使构建工作正常。

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

这可能是什么原因造成的?如何让编辑了解这些类型?

编辑:看起来问题不在于视觉工作室本身,而是更清晰。当我暂停 resharper 时,编辑器不再显示任何红色符号,也不会抱怨未解析的符号。

所以现在的问题是,如何让我更清晰地了解我生成的类型?

4

3 回答 3

1

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

ReSharper IntelliSense ANTLR 支持

在评论中,您可以找到解决方案:Resharper 的扩展名为External Code

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

于 2015-03-04T17:16:46.867 回答
1

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

于 2014-08-15T08:43:49.213 回答
0

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

于 2014-08-14T11:29:46.913 回答