【发布时间】:2011-04-28 22:43:17
【问题描述】:
我的应用程序混合了面向 3.5 和 4.0 的程序集。我正在开发一个针对 4.0 的新 Windows 服务,但该项目似乎突然无法看到解决方案中的一些其他程序集。这意味着,在构建时,对这些某些其他程序集的所有引用都会产生以下错误:
命名空间“[Y]”中不存在类型或命名空间名称“[X]”(您是否缺少程序集引用?)
如果我删除项目引用并重新添加它,红色的波浪线就会消失,而 Intellisense 会再次启动,就像它应该的那样。解决方案中的所有其他项目都没有问题。 但是当我尝试构建这个新项目时,错误又回来了。
其中一个失败的引用是我们针对 3.5 的 Core.dll。我们最近添加了一个面向 4.0 的 CoreEx.dll,在程序集之间共享命名空间。新服务可以看到 CoreEx.dll 但看不到 Core.dll ......即,当我开始输入 using Core.Utilities... Intellisense 时,会从 CoreEx.dll 中提取较小的命名空间集,但不会显示仅出现在 Core.dll 中的任何命名空间.我很确定添加此解决方案后成功构建了解决方案,但这是最近的一个显着变化。
另一个失败的参考是我们的核心 Data.dll,它包含一堆数据集和实体框架的东西。这个最近迁移到 4.0。同样,我几乎肯定迁移项目后构建的解决方案,但值得一提。
最后一个失败的引用是一个程序集,它使用了服务“上一层”的命名空间。例如,有问题的项目基于命名空间ProductName.Component.ComponentService,并且无法看到基于命名空间ProductName.Component 的项目。这个是最近与有问题的项目一起创建的,也是针对 4.0 的。
如您所见,程序集引用失败似乎没有任何押韵或原因......并且有问题的项目可以成功引用解决方案中的其他程序集一些 .我试过清理、重建、重新启动 Visual Studio ......没有任何东西可以永久修复它。这可能是什么原因造成的?
【问题讨论】:
-
我遇到了您的问题的简单版本,实时语义错误(红色波浪线)和智能感知支持崩溃。重新构建没有帮助,但删除项目并将其添加回来可以解决问题。听起来您对这个问题很熟悉……您首先重新添加了项目,然后遇到了更多问题。为什么会出现简单版本?有什么预防措施吗?真的很烦!
标签: c# .net visual-studio visual-studio-2010