別のパッケージ Y に依存するパッケージ X があります。デフォルト (Visual Studio 2015 Upd3 + nuget 3.5) では、パッケージ X を参照するプロジェクトは、パッケージ Y も参照して更新されます。問題は、X の顧客が Y への参照をまったく必要としないことです。これは、パッケージ Y の API が顧客に公開されておらず、公開されるべきではないためです。
したがって、予想される動作は次のとおりです。パッケージ X への参照を追加した後、ビルド時にパッケージ Y のコンテンツを出力フォルダーにコピーする必要がありますが、パッケージ Y をプロジェクト参照に追加することはできません。
そうする方法はありますか?
理論的には、インフラストラクチャ パッケージ Y のソースをプロジェクト X に含めることができます (どちらのプロジェクトも MIT ライセンスの下でオープンソースです) が、多かれ少なかれ標準的なアプローチを使用したいと思います。
必要なケースの例:
Microsoft.DiaSymReader
現在調査中のケース: PDB ファイルがソース (参照パッケージ)と一致することを確認するテスト ヘルパーを含む nuget パッケージ。Microsoft.DiaSymReader
すべてのテスト プロジェクトでアセンブリを参照する必要はありません。多かれ少なかれ理論的なもの (今のところ問題ではありませんが、プロジェクトが本番環境にプッシュされる場合は問題になるでしょう): Roslyn を使用してスクリプトをコンパイルおよび実行するカスタム スクリプト エンジン。スクリプト エンジンを使用するすべてのプロジェクトで、Roslyn アセンブリへの参照は必要ありません。
後者の場合は、明らかに roslyn ソースをプロジェクトにマージできず、パッケージの一部として roslyn バイナリを配布することもできないため、さらに悪化します。
どんな提案も大歓迎です!