1

我正在使用Visual Studio 2008与企业库4.0。它工作正常,并显示命名空间Microsoft.Practices.EnterpriseLibrary.Data。现在我安装了VS 2010和Enterprise Library 5.0(因为4.0不支持VS 2010)。企业库5.0不显示命名空间Microsoft.Practices.EnterpriseLibrary.Data

但问题是企业库5.0不显示Microsoft.Practices.EnterpriseLibrary.Data。 5.0中有另一个命名空间,我可以访问Microsoft.Practices.EnterpriseLibrary.Data命名空间下的Database类吗?

请让我知道。

回答

2

您可能以.NET Framework Client Profile为目标。数据访问块对System.Data.Oracle有依赖关系,并且需要完整的.NET Framework。

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从例如。 C:\Program Files (x86)\Microsoft Enterprise Library 5.0\Bin区域,但这是客户端配置文件兼容的。

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