我在Visual Library 2008中使用Enterprise Library 4.0。它工作正常并显示命名空间Microsoft.Practices.EnterpriseLibrary.Data。现在我安装了VS 2010和Enterprise Library 5.0。(因为4.0不支持vs 2010)。
但问题是Enterprise Library 5.0没有显示Microsoft.Practices.EnterpriseLibrary.Data。在5.0 thriugh中是否有另一个命名空间,我可以访问Microsoft.Practices.EnterpriseLibrary.Data命名空间下的Database类?
请告诉我。
答案 0 :(得分:2)
您可能正在定位.NET Framework客户端配置文件。数据访问块依赖于System.Data.Oracle,需要完整的.NET Framework。
答案 1 :(得分: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.dll
和Microsoft.Practices.EnterpriseLibrary.Data.dll
)与.NET Framework 4 Client Profile
一起使用。您必须从例如{1}}分发Microsoft.Practices.Unity.dll
。 C:\Program Files (x86)\Microsoft Enterprise Library 5.0\Bin
区域,但这与客户端配置文件兼容。
请注意,如果您的应用中不需要Oracle支持,则上述方法有效。我没有,它只是SQL Server和VistaDB。以上内容适用于任何与ADO.NET兼容的非Oracle数据库。