在Visual Studio 2010中,项目引用无法正常工作

44

我有一个包含多个项目的解决方案,但其中一个项目无法正常工作。该项目是一个ConsoleApplication,并依赖于C#类库项目。我已经添加了对该库项目的引用,并添加了命名空间(我已经检查过是正确的),但在我的代码中引用库中的类时,每处均出现以下错误:

找不到类型或命名空间“MyClass”(是否缺少 using 指令或程序集引用?)。

库项目正在成功构建(我可以看到 DLL 文件出现在 bin 文件夹中),并且我已经尝试了项目引用和对 DLL 本身的引用。没有一个有效。

此外,所有项目都设置为使用“Any CPU”作为平台目标。

我已经尝试了几乎所有在论坛上遇到的建议,但都没有成功。有人能否对出现问题的原因进行解释?

谢谢

这解决了问题:

控制台应用程序的目标框架为.NET Framework 4 Client Profile,而库仅具有.NET Framework 4。我将控制台应用程序设置为.NET Framework 4,现在一切都可以完美构建。


1
仅代表个人观点。C# 是区分大小写的。你检查了命名空间的大小写吗? - Steve
这个类有公共构造函数吗? - Antarr Byrd
请看下面Antao的回答 - 我们经常看到Git合并会弄乱我们的项目文件。 - increddibelly
6个回答

98

我的猜测是你的库和应用程序之间存在框架不匹配的问题... 检查一下你的库是否使用了比你的应用程序更高级的版本,或者你的应用程序是否使用了客户端配置。


没错,你说得对,我在下面放了一个完整的答案 - 感谢Cédric的建议。 - Richard
7
谢谢大家,速度很快!是的,控制台应用程序的目标框架是 .NET Framework 4 客户端配置文件,而库只有 .NET Framework 4。我将控制台应用程序设置为 ".NET Framework 4",现在一切都可以完美构建了。鉴于错误提示的措辞,我本来没想到去那里查找,所以谢谢你的提示。我想这是那种只会犯一次却会记住下次的错误吧 (...?)谢谢! - Richard
哦,我以为我会花一整天的时间来解决这个问题,但是有你在:D - Crystian Leão
作为记录,因为这对我有用:请确保您键入的是您正在使用的库的命名空间,而不是类的名称。 - Alejandro Bastidas
谢谢!我在 .net 5 和 .netstandard 2.0 之间挣扎了很久......但是 .net 不支持它。我还得想办法安装 .netstandard2.1。 - mattylantz
显示剩余3条评论

3

很可能你的某个DLL引用了.NET框架中在控制台应用程序中没有被引用的部分。例如,如果你的一个类库项目中包含ASP.NET服务器控件并引用了System.Web,但是你的控制台应用程序没有引用System.Web,那么它将无法构建并出现该错误。但这并不明显,因为引用的DLL存储在全局程序集缓存中,所以它们永远不会出现在你的bin文件夹中。


我认为你是正确的,Ben。我已经添加了完整的答案 - 感谢你的帮助。 - Richard

2

我只需要重新启动Visual Studio即可使引用起作用,但请确保在.csproj文件中添加了引用。

如果您仍然遇到问题,请确保您正在引用的类是public,并且Asp.net core框架的版本匹配。


1

听起来有点奇怪,

你尝试过移除项目的引用并重新添加吗?检查一下你的控制台应用程序是否具备所有正确的引用。

你也可以检查一下 .csproj 文件,看看里面是否一切正常。


0

请检查您的"类库"项目中是否有类,或者它是否是一个仅包含.edmx模型的数据访问层项目,请检查模型设计器是否存在并且生成正常。

祝好运


0

我曾尝试同步框架,但仍然出现问题。 所以我尝试了另一种方法。 右键点击依赖项,选择添加项目引用。我添加了所需的项目,然后错误就消失了。


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