引用项目在编译时"丢失"

Bob*_*man 99 c# reference project

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

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

我重新启动,清除所有缓存,确保这是我的机器上运行的唯一VS 2010实例.

是否有一些明显(显然)我缺少的东西?

jos*_*ley 157

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

对于不一致的版本,特别是一个存在Client Profile而另一个不存在,那么它在设计时工作但在编译时失败.一个真正的陷阱.

Visual Studio 2010中有一些有趣的东西可供我使用,它可以随时随地设置项目Client Profile,有时是在创建项目时,有时是几天后.可能是一些键盘快捷键我不小心碰到了......

  • @Bob它让我发生了流血事件,就像你有上一个问题一样,每次发生这种情况,至少在几分钟内,我对整个事情感到非常困惑,直到我记得"哦,等等,客户****简介" (6认同)
  • 我在VS2012也遇到了这个问题.事实证明,这不是客户端配置文件问题,而是引用的项目是4.5,而引用的新项目默认为4.0.把那一个归结为4.5并且问题消失了.真正的解决方案,只是另一种变化. (4认同)

小智 5

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

另外,请确保项目“记录器”(您要包含在主项目中)的输出类型为“类库”: 右键单击项目-> 属性-> 应用程序(选项卡)-> 输出类型

最后,重建解决方案。