【问题标题】:Unable to use namespace after referencing assemblys引用程序集后无法使用命名空间
【发布时间】:2011-07-09 04:45:54
【问题描述】:

伙计们,

我在使用 Visual Studio 2010 SP1 中的 c# 多项目解决方案时遇到问题。

这里是解决方案结构: BNLib - amy 个人实用程序库 WidgetClientApp - asp.net 应用程序前端 WidgetConsoleUtilities - 控制台应用程序 WidgetCore - 包含共享接口、类和枚举 WidgetMiddleTier - 业务逻辑 WidgetDataLayer - 通过 linq 对 SQL 的数据库访问。

问题 在向控制台应用程序 (WidgetConsoleUtilities) 添加对中间层程序集 (WidgetMiddleTier,其中包含命名空间 Widget.MT) 的引用后,我在我的 program.cs 页面中添加了一个 using 指令:

使用 Widget.MT;

然后我在 using 指令上收到编译器错误:

命名空间“Widget”中不存在类型或命名空间名称“MT”(您是否缺少程序集引用?)

我在同一个解决方案中的其他几个项目中使用这个程序集没有问题。 我在控制台应用程序中毫无困难地使用了另一个程序集(WidgetCore,其中包含命名空间 Widget.Core)。

Web 应用程序(小部件)毫无问题地使用这两个程序集。

我尝试删除和读取命名空间,关闭并重新打开 Visual Studio 2010,清理构建,直接包括程序集而不是项目,但没有任何效果。

有什么想法吗?

您的帮助将不胜感激!

最好的,

布雷特

【问题讨论】:

  • 控制台应用程序是否偶然使用了 .NET 4 客户端配置文件?

标签: c# .net namespaces .net-assembly


【解决方案1】:

控制台应用程序是否偶然使用了.NET 4 client profile?如果是这样,您不能引用不在 .NET Framework 4 客户端配置文件中的程序集。相反,您必须以 .NET Framework 4 为目标 - 为此,请转到您的项目属性并将“Target Framework”更改为“.NET Framework 4”。

【讨论】:

  • 之前遇到过几次。
  • 这就是我立即想到的。我已经被这个咬过几次了。我发现 VS powertools 的增强参考对话框仅显示您可以使用当前框架版本加载的程序集,以擅长减少随机暴力倾向。
  • @Jon,非常感谢快速、简洁、易懂且最重要的是正确答案!
  • 有关 .NET Framework 4 客户端配置文件的信息,请参阅 msdn.microsoft.com/en-us/library/cc656912.aspx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
相关资源
最近更新 更多