102 我有一个包含两个项目的C#解决方案:一个服务(主项目)和一个记录器。该服务使用记录器中的类。我在服务项目中添加了对记录器项目的引用。在设计时,自动完成功能可以正常工作:记录器的类是可见的,我使用的引用已正确着色。 我重新构建解决方案,结果出了问题。引用不再被识别:“名称'Logging'在当前上下文中不存在”,并且类在自动完成中也不再存在。删除并重新附加引用使我回到使标识符可见以自动完成的基本状态。 我已经重新启动,清除了所有缓存,确保这是我计算机上运行的VS 2010的唯一实例。 有什么(显然)是我所缺少的吗? c# reference project — 鲍勃·考夫曼 source
158 在项目属性下检查每个项目的构建类型-我敢打赌一个或另一个将针对构建.NET XX - Client Profile。 如果版本不一致,尤其是一个版本不一致,则版本不一致Client Profile,那么它在设计时起作用,但在编译时失败。一个真正的陷阱。 对我来说,Visual Studio 2010中发生了一件有趣的事情,它使项目看似随机地设置为Client Profile,有时是在我创建项目时,有时是在几天后。可能是我不小心按下了某些键盘快捷键... — 乔什科姆利 source 1 我敢打赌你是对的...如果不记得我上个月问的这个可比问题,就对我感到羞耻!stackoverflow.com/questions/3991361/... — 鲍勃·考夫曼 6 @Bob一直在我身上流血,就像您有上一个问题一样,每次发生时,至少有几分钟我对整个过程都感到困惑,直到我想起“哦,等等,客户** ** ing个人资料” — joshcomley 4 我也有VS2012这个问题。原来不是Client Profile问题,而是所引用的项目在4.5中,而所引用的新项目默认为4.0。碰到了4.5,问题就消失了。确实是相同的解决方案,只是另一种变化。 — 布拉德·马修斯 这是最近在VS 2013中发生的事情。该项目是默认的4.5,但是其中一个库是在4.5.2上构建的。如果项目为4.5.2,并且其中一个库为4.5或4.5.1,则它将起作用。但并非相反。 — ahwm 2015年
4 确保此处的两个项目具有相同的目标框架版本: 右键单击项目->属性->应用程序(选项卡)->目标框架 另外,请确保项目“记录器”(要包含在主项目中)的输出类型为“类库”: 右键单击项目->属性->应用程序(选项卡)->输出类型 最后,重建解决方案。 — 马纳尔 source