引用项目在编译时“丢失”

时间:2010-11-26 15:39:54

标签: c# reference project

我有一个包含两个项目的C#解决方案:服务(主项目)和记录器。该服务使用记录器中的类。我在服务项目中添加了对logger项目的引用。在设计时,自动完成工作正常:记录器的类是可见的,我使用的引用都是适当的颜色。

我重建解决方案,出了问题。不再识别引用:“当前上下文中不存在名称'Logging',并且自动完成中不再存在类。删除和重新附加引用会使我回到基本状态,使标识符对自动完成可见。

我已重新启动,清除了所有缓存,确保这是我的计算机上运行的唯一VS 2010实例。

有什么显而易见的(很明显)我不知道了吗?

2 个答案:

答案 0 :(得分:154)

检查项目属性下每个项目的构建类型 - 我打赌其中一个或另一个将设置为针对.NET XX - Client Profile构建。

对于不一致的版本,特别是一个版本为Client Profile而另一个版本没有,那么它在设计时工作但在编译时失败。一个真正的问题。

Visual Studio 2010中有一些有趣的事情发生在我身上,它有时会将项目随机地设置为Client Profile,有时是在创建项目时,有时是几天之后。可能是一些键盘快捷键,我不小心碰到了......

答案 1 :(得分:1)

确保两个项目在此处具有相同的目标框架版本: 右键单击项目->属性->应用程序(标签)->目标框架

此外,请确保项目“ logger”(要包含在主项目中)在以下位置具有输出类型“ Class Library”: 右键单击项目->属性->应用程序(标签)->输出类型

最后,重建解决方案。