我最近在Visual Studio 2008解决方案中添加了一个新项目。现在,当我在新项目中进行编辑时,我收到了大量(~50)类型检查错误 - 表明可能缺少程序集引用。但是,当我实际构建解决方案时,错误就会消失。我可以说,我的依赖项已设置,构建顺序正确。可能有什么不对?
这并不妨碍我进行构建和部署,但这是一个很大的麻烦。它让我很难分辨我何时引入了新的错误(直到我编译)。因此,它侵蚀了使错误窗口进行静态分析的有用性。
示例,50个错误之一是: “命名空间名称'PersonManager'的类型在命名空间'Gideon'中不存在(你错过了程序集引用吗?” 参考这行代码: Gideon.PersonManager pm = new Gideon.PersonManager()
PersonManager在两个地方都加下划线,当我右键单击类型并选择“查找所有引用”时,我会收到一个警告框,上面写着“无法导航到PersonManager”
然而,引用肯定存在,因为当我构建时,它可以工作。
另一个细节是有C#和VB.net代码的混合,但我不认为这应该有所作为。
答案 0 :(得分:1)
嗯,是的,IntelliSense解析器不是C#编译器的精确副本。它有一个非常不同的工作要做,它需要做一些有意义的事情,而代码完全打破,因为你正在编辑它。艰难的任务,他们做了很多工作。但作为一种副作用,它无法解析实际上合法的事情。这是非常罕见的,但并非闻所未闻,几次见过它。
除非您至少告诉我们您所看到的错误类型以及生成它们的代码片段,否则这不会具体。你没有这样做,我只能建议你选择另一个窗口,这样你就不用看了。
答案 1 :(得分:0)
我遇到了同样的问题。我的解决方案中有一个导致问题的项目 - 我从解决方案中删除了项目,然后在主解决方案中添加了对该项目的引用,错误就消失了。奇怪的是它只发生在一台机器上。在另一台机器上打开解决方案很好......