現在、このソリューションのすべてのプロジェクトに対して多数のナゲット パッケージを公開しようとしています。プロジェクトは単純なツリーでセットアップされ、Myre が基本プロジェクトであり、すべてがそれに依存しています。
Myre <- Myre.Debugging <- Myre.Debugging.UI <- Myre.UI
Myre <- Myre.UI
Myre <- Myre.Entities <- Myre.Graphics
必要に応じて、他の Myre サブプロジェクト パッケージに適切な依存関係を持つ nuget パッケージとして、個別の各プロジェクトをパッケージ化しようとしています。
私の最初のステップは、Myre のパッケージ(プロセスのnuspecとバッチファイル) を作成することでした。これはうまく機能しているようです。ギャラリーは Myre にninject (別の nuget パッケージ) 依存関係があることを示しており、すべて問題ありません。
次のパッケージを作ろうとしたときに問題が発生しました。Myre.Debuggingは Myre (通常のプロジェクト参照) に依存し、他には何も依存しません。この nuspecを nuget pack (verbose) で使用すると、次のようになります。
Attempting to build package from '(x86) Myre.Debugging.csproj'.
Packing files from 'C:\Long_Path\Myre\Myre.Debugging\bin\x86\Release'.
Add file 'C:\Long_Path\Myre\Myre.Debugging\bin\x86\Release\Myre.Debugging.dll' to package as 'lib\net40-Client\Myre.Debugging.dll'
Add file 'C:\Long_Path\Myre\Myre\bin\x86\Release\Myre.dll' to package as 'lib\net40-Client\Myre.dll'
Add file 'C:\Long_Path\Myre\Myre\bin\x86\Release\Myre.XML' to package as 'lib\net40-Client\Myre.XML'
Found packages.config. Using packages listed as dependencies
Id: Myre.Debugging
Version: 1.0.0.2
Authors: Microsoft
Description: Description
Dependencies: Ninject (= 3.0.1.10)
Added file 'lib\net40-Client\Myre.Debugging.dll'.
Added file 'lib\net40-Client\Myre.dll'.
Added file 'lib\net40-Client\Myre.XML'.
Successfully created package 'C:\Long_Path\Myre\Myre.Debugging\Myre.Debugging.1.0.0.2.nupkg'.
ご覧のとおり、packages.config ファイル (ここにはファイルがないため、おそらく Myre から) を取得し、そこから Ninject の依存関係を決定します。Myre.Debugging と Myre を単一のパッケージにしたい場合は問題ありません。ただし、これは私が望んでいるものではありません。Myre.Debugging が Myre パッケージへの依存関係を取得することを望んでいます。
Myre アセンブリを単に Myre.Debugging パッケージにコピーするのではなく、Myre をパッケージ参照として使用するように nuget をセットアップするにはどうすればよいですか?
編集:: -IncludeReferencedProjectsを使用せず、次を指定してみました:
<dependencies>
<dependency id="Myre" version="1.0.0.1" />
</dependencies>
しかし、何らかの理由で、これはまったく依存関係のないパッケージを作成するだけです! このように依存関係を手動で指定することができたとしても、理想的とは言えません。