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 を表示しないことです。Microsoft.Practices.EnterpriseLibrary.Data名前空間の下にあるデータベースクラスにアクセスできる別の名前空間が5.0にありますか?

私にお知らせください。

4

2 に答える 2

2

おそらく、.NET Framework Client Profile をターゲットにしています。データ アクセス ブロックは 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.dllおよびMicrosoft.Practices.EnterpriseLibrary.Data.dll) を で使用できます.NET Framework 4 Client ProfileMicrosoft.Practices.Unity.dlleg エリアから配布する必要がありC:\Program Files (x86)\Microsoft Enterprise Library 5.0\Binますが、これはクライアント プロファイルと互換性があります。

アプリで Oracle サポートが必要ない場合は、上記が機能することに注意してください。私はそうではありません.SQL ServerとVistaDBのみです。上記は、ADO.NET と互換性のある Oracle 以外のデータベースで動作するはずです。

于 2013-11-10T08:10:07.310 に答える