在命名空间 'Microsoft' 中,类型或命名空间名称 'Practices' 不存在。

10

我正在使用Microsoft Visual Studio 2005来编写C#代码,我的代码中有以下命名空间:

using Microsoft.Practices.EnterpriseLibrary;
using Microsoft.Practices.EnterpriseLibrary.AppSettings;
using Microsoft.Practices.EnterpriseLibrary.Data;

我一直收到这个错误:

- 类型或命名空间“Practices”在命名空间“Microsoft”中不存在(是否缺少程序集引用?)

我该怎么办?

提前感谢。:)


1
也许这会有所帮助:http://msdn.microsoft.com/zh-cn/library/ff650106.aspx - Danny Beckett
1
我在Visual Studio 2015 Enterprise中遇到了同样的问题。结果发现清理、重建和多次重启操作系统解决了这个问题。 - Bruno Medina
4个回答

4
除了从项目中引用DLL,还要确保项目属性中的目标框架至少与Microsoft Enterprise Library版本一样高:

同时确保它未设置为客户端配置文件(例如.NET Framework 3.5客户端配置文件),否则您也将获得相同的错误。

另外,要下载Enterprise Library 6.0:

  • 运行自解压可执行文件EnterpriseLibrary6-binaries.exe
  • 在PowerShell中运行下载脚本:
    • 启动管理员命令提示符
    • 导航到包含install-packages.ps1的目录
    • 使用命令powershell -ExecutionPolicy ByPass -File install-packages.ps1

对于5.0,您可以下载MSI并使用Universal Extractor(如果不想安装DLL)。


1

3
Nuget是另一个选择,而不是下载程序集。 - Steven V
是的,那也是我的推荐解决方案,但据我所知,官方并没有为VS2005提供NuGet支持。或者有吗? - Chief Wiggum
1
好的观点。根据http://stackoverflow.com/a/7558894/254973,有一种疯狂的方法可以将某些东西拼凑在一起。但是这可能会带来更多的麻烦,因为如果其他人需要使用该项目,则会创建更多的外部工作。所以还是使用程序集吧! - Steven V
啊,我不知道有Scott的文章,好知道。你可以在VS环境外运行nuget.exe获取文件,但正如你已经提到的:如果你正在运行VS2005,那么直接下载库会更容易。 - Chief Wiggum
你使用的是哪个 .net 框架?我可能会选择最新的(6):http://www.microsoft.com/en-us/download/details.aspx?id=38789 - Chief Wiggum
显示剩余3条评论

1

当我将“目标框架”从“.Net Framework 4客户端配置文件”更改为“.Net Framework 4”时,同样的问题得到了解决。


0

Visual Studio 2005仅支持原始的.NET 2.0项目。

您可以从此页面中看到,目前只有少数版本是活跃的,

  • Enterprise Library 6 - 2013年4月
  • Enterprise Library 5.0 - 2010年4月
  • Enterprise Library 5.0 Integration Pack for Windows Azure - 2011年11月
  • Enterprise Library 5.0 Integration Pack for Silverlight - 2011年5月
  • Enterprise Library 4.1 - 2008年10月

即使对于4.1版本,也需要Visual Studio 2008或更高版本

最后一个支持Visual Studio的版本是3.1版本,已经有6年历史了。


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