【问题标题】:Enterprise Library 5.0 don't show namespace Microsoft.Practices.EnterpriseLibrary.DataEnterprise Library 5.0 不显示命名空间 Microsoft.Practices.EnterpriseLibrary.Data
【发布时间】:2013-06-20 13:50:57
【问题描述】:
我使用的是带有 Enterprise Library 4.0 的 Visual Studio 2008。它工作正常并显示命名空间 Microsoft.Practices.EnterpriseLibrary.Data。现在我安装了 VS 2010 和 Enterprise Library 5.0。(因为 4.0 不支持 vs 2010)。
但问题是 Enterprise Library 5.0 不显示 Microsoft.Practices.EnterpriseLibrary.Data。 5.0 中是否还有另一个命名空间,我可以访问 Microsoft.Practices.EnterpriseLibrary.Data 命名空间下的 Database 类?
请告诉我。
【问题讨论】:
标签:
class
ado.net
namespaces
enterprise-library
enterprise-library-5
【解决方案1】:
您的目标可能是 .NET Framework 客户端配置文件。数据访问块依赖于 System.Data.Oracle,需要完整的 .NET Framework。
【解决方案2】:
对于将基于 DAAB 的应用程序迁移到 .NET4 时遇到此问题的其他人,entlib5 提供了可通过例如安装的源代码。 C:\Program Files (x86)\Microsoft Enterprise Library 5.0\src\Enterprise Library 5.0 - Source Code.msi
运行该 msi 并接受默认设置会在您的文档区域下创建一个 EntLib50Src 文件夹。如果你进入EntLib50Src\Blocks\Data并打开Data.2010.sln你可以将目标框架更改为.NET Framework 4 Client Profile。
这会产生一堆与System.Data.Oracle 依赖相关的错误。删除对它的引用,然后排除项目的Oracle 部分并注释掉公共代码中的任何Oracle 引用。
如果您随后使用强名称签名重新编译,您可以将输出程序集(Microsoft.Practices.EnterpriseLibrary.Common.dll 和Microsoft.Practices.EnterpriseLibrary.Data.dll)与.NET Framework 4 Client Profile 一起使用。您确实必须从例如分发Microsoft.Practices.Unity.dll C:\Program Files (x86)\Microsoft Enterprise Library 5.0\Bin 区域,但这是与客户端配置文件兼容的。
请注意,如果您的应用不需要 Oracle 支持,上述方法有效。我的没有,只有它的 SQL Server 和 VistaDB。以上应该适用于任何与 ADO.NET 兼容的非 Oracle 数据库。