项目参考问题,Visual Studio 2010

18
我有一个解决方案,其中包含一个类库项目和其他的WPF应用程序。我已经添加了类库的引用,但是它们都不能使用其类。所以问题出在哪里呢?
注意:抱歉标签混乱,这是Safari浏览器的问题。

你尝试过使用反射器检查你的库程序集以确保一切都正确吗? - treehouse
@Kaan:你说的“不能使用它的类”是什么意思?你有编译器错误吗? - treehouse
是的,我遇到了编译器错误:“在名称空间'lt'中不存在类型或命名空间'Core'(您是否缺少程序集引用?)” - Kaan
我发现当我点击“清理解决方案”按钮时,它不会出错,但在我按下“生成”后就开始出错了。这是错误:http://img826.imageshack.us/img826/4823/errornf.png - Kaan
发现如果我将ADO.NET实体数据模型添加到类库中,它会开始给我报错。即使我从类库中删除了它,错误仍然存在。 - Kaan
4个回答

79

确保所有项目的目标框架相同。 可能会出现这样一种情况,你的库类项目的目标是完整的 .Net Framework 4.0,而你的 WPF 项目的目标是 .Net Framework 4.0 客户端框架。

要完成这个操作,请在解决方案中每个项目的“属性”中检查应用程序 | 目标框架属性。或者,你可以下载 VSCommands 2010 扩展,并通过“解决方案属性”窗口查看所有属性。


你的意思是它们全部都是'.NET Framework 4.0',而没有一个是'.NET Framework 4.0客户端配置文件'吗? - Registered User
3
不,这个类库是 .NET 4 版本的,而其他的是 .NET 4 客户端框架版本。 - Kaan
兄弟!+1。很奇怪,我的项目构建了一次,然后就不行了。这让我发疯了。看起来我的Windows服务决定成为“客户端配置文件”,而其他所有服务都是正常的.NET4;谢谢啊! - Piotr Kula
4.5.1与4.5之间的区别。是的,这个也让我困惑了。 - Bill
为我解决了问题,可惜这不是答案。如果是的话就太好了。 - justian17

2
我遇到了相同的问题,但解决方案却不同……
我们是一个团队,在这个团队中,有一位开发者(名叫dev1)安装了.NET 4.5(其他人只安装了.NET 4.0)。在dev1对项目进行了一些更改后,其他人遇到了问题,无法构建。项目引用无法正常工作(但如果像使用dll一样使用它,则可以正常工作)......
因此,我们为所有人安装了.NET 4.5,并解决了问题。
Moha

2

需要检查的事项:

  • The class library classes are public
  • You have an appropriate using directive in your calling code:

    using MyCompany.ClassLibrary;
    
如果这不起作用,请发布您从库中尝试使用类时发生的情况。

2
它们都是公共的,我已经使用语句定义了。我意识到,如果我删除然后添加引用,直到我点击“生成”按钮,一切都还好。然后错误再次出现。我创建了另一个解决方案,并通过复制和粘贴移动了代码(不是直接复制文件),问题仍然存在。我认为我在使用VS时有问题,但我也尝试过在另一台安装了相同版本的VS的计算机上运行它。 - Kaan
我这里也有完全相同的问题。我只想补充一点,当我第一次将项目添加到引用中并开始输入using指令时,Visual Studio甚至会为我找到该项目(使用其IntelliSense功能)。然后我进行清理和重新构建,然后它就找不到类型或命名空间了。就像Kaan所描述的那样。 - justian17
@Ilia。类库在哪里? - Jon Skeet
@JonSkeet; 它被添加到当前项目的“参考”下;它所有的类也都有正确的命名空间... 下面关于项目框架的答案为我解决了这个问题。谢谢 =) - justian17

-1
发现问题了。我的类库中的一个引用导致了这个问题,我已经将其移除。现在我可以构建解决方案而没有错误了。
感谢您的评论。

我遇到了类似的问题,你能详细说明修复和问题是什么吗? - IbrarMumtaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接