1

Enterprise 라이브러리 4.0에서 Visual Studio 2008을 사용하고있었습니다. 그것은 잘 동작하고 네임 스페이스 Microsoft.Practices.EnterpriseLibrary.Data를 보여줍니다. 이제 VS 2010 및 Enterprise Library 5.0을 설치했습니다 (4.0은 vs 2010을 지원하지 않기 때문에).Enterprise Library 5.0에서 namespace를 표시하지 않습니다. Microsoft.Practices.EnterpriseLibrary.Data

그러나 문제는 Enterprise Library 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\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 영역이지만 클라이언트 프로필과 호환됩니다.

앱에서 오라클 지원이 필요없는 경우 위의 내용이 작동합니다. Mine은 SQL Server와 VistaDB 만 지원합니다. 위의 내용은 ADO.NET과 호환되는 오라클이 아닌 모든 db에서 작동합니다.