1

我使用的是带有 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 类?

请告诉我。

4

2 回答 2

2

您的目标可能是 .NET Framework 客户端配置文件。数据访问块依赖于 System.Data.Oracle,并且需要完整的 .NET Framework。

于 2013-06-30T23:56:45.133 回答
0

对于将基于 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.dllMicrosoft.Practices.EnterpriseLibrary.Data.dll)与.NET Framework 4 Client Profile. 您必须Microsoft.Practices.Unity.dll从 egC:\Program Files (x86)\Microsoft Enterprise Library 5.0\Bin区域分发,但这是与客户端配置文件兼容的。

请注意,如果您的应用程序中不需要 Oracle 支持,则上述方法有效。我的没有,只有它的 SQL Server 和 VistaDB。以上应该适用于与 ADO.NET 兼容的任何非 Oracle 数据库。

于 2013-11-10T08:10:07.310 回答