-2
長年にわたりいくつかのプロジェクトで、最近ではRavenDBでこのパターンに気付きました。 ILSpyでRaven.Abstractions.dllなぜNewtonsoftを名前空間に埋め込むのですか?
オープニング、私はオール "ProjectName.SomeScope.Newtonsoft"
は、なぜこれが行われる気づきました? githubのソースコードを見ると、彼らはNewtonsoftのソースを引っ張っていて、Foddyを使ってNewtonsoftのタイプをRavenアセンブリに織り込んでいると推測しています。
タイプの衝突を防ぐためにこれが行われていることがわかります.Raven.Abstractions.Dllには、あなたが(コンシューマとして)そのバージョンを参照することなくNewtonsoftの特定のバージョンを持つことができます。
他の考えはありますか?
変換するコンバータを使用していますか? –
彼らはそれを行うので、Newtonsoftに別の依存関係を含める必要はありません。それでおしまい。彼らは何も織っていない。アセンブリをまとめるだけ。 ILMergeを使用すると、これを自分で簡単に行うことができます。 https://www.microsoft.com/en-us/research/people/mbarnett/を参照してください。 – Amy