9

EntityFramework(およびその他)が機能する必要があるパッケージ(たとえば、MyStuff.Data)がありますが、これは内部でのみ機能します。MyStuff.Dataを使用するすべてのプロジェクトがEntityFramework(およびその他すべて)も参照することは望ましくありませんが、dllは常にそこにある必要があります。

MyStuff.Dataの依存関係としてEntityFrameworkを追加する方法はありますか(パッケージフォルダー内のEntityFramework.dllを取得するため)が、それを使用する各プロジェクトに参照を追加する必要はありませんか?

4

1 に答える 1

4

いいえ、ありません。オプションとして、EntityFramework dllを埋め込み、独自のパッケージ内に出荷し、インストール中にターゲットプロジェクトに追加する必要がある参照を明示的に指定することもできます。これは、パッケージのnuspecのメタデータ要素を使用して指定できます。詳細については、次のドキュメントを参照してください: http ://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Explicit_Assembly_References

依存関係の特定のバージョンを埋め込むことは、すべてのコンシューマーに対する制限の制約であることに注意してください。つまり、パッケージプロデューサーとして、コンシューマーが使用できるEFのバージョンを駆動することになります...これは良くありませんある状況。

できれば、非制御(EF)依存関係を抽象化し、実際の実装の選択をコンシューマーに任せてください(または、実装を含む別のパッケージを提供して、コンシューマーがオプトインして使用できるようにすることをお勧めします)。

于 2012-07-16T18:39:56.817 に答える