したいローカル/内部NuGetリポジトリを実行する既存のNuGetパッケージをNuGetを使用してダミープロジェクトに含め、パッケージファイルをスキャンして「再利用」する方法がわかったと思います。ローカルにキャッシュされた.nupkg
ファイルを取得する、 しかし...
.nupkg
プロジェクトからNuGetパッケージ( )を作成し、自動的に含めるにはどうすればいいですか?全て dll
NuGet 経由で取得した依存関係だけでなく、依存関係も取得しますか?
具体的には:
- ソリューションを作成する
- 新しいプロジェクトを追加する
.dll
さまざまなファイル/他のプロジェクトへの参照を追加する<-- これは欠けている部分です- パッケージマネージャー/コマンドライン/その他を使用してNuGetパッケージを追加する
- 何か自動的に作成されます
.nupkg
私が調べたところによると、次のようなことをするはずです
- 依存関係を含める
.csproj
ためにファイルを手動で編集する<BuildPackage>true</BuildPackage>
- 手動で
.nuspec
ファイルを作成し、手動で依存関係をリストする(似ている ?) - ファイル
nuget pack
を手動で実行する.nuspec
しかし、すべてが手動なのは愚かなことです。半自動ソリューションでさえ、まだ扱いにくいか、半分手動です。
.nuspec
テンプレートを作成する- 依存関係は含まれず、メタデータのみが含まれるようですビルドイベント経由のNuGetパック(ステップ5)は、すべてのプロジェクトに手動で追加する必要があり、独自の癖:
"$(SolutionDir).nuget\NuGet.exe" pack "$(ProjectPath)" -Properties Configuration=Release move /Y *.nupkg "$(TargetDir)"
プロジェクト参照からマニフェストを自動的に作成するもので満足します.nuspec
。理論的には、それと nuget ビルド イベントをビルド プロジェクト/nuget パッケージにまとめることができます。これが私が本当に望んでいることです。
ベストアンサー1
あなたのポイント3(さまざまな.dllファイル/他のプロジェクトへの参照を追加します<--これが不足している部分です) には、実際には 2 つの異なる問題が含まれています: (1) さまざまな dll ファイルへの参照を追加すること、および (2) 同じソリューション内の他のプロジェクトへの参照を追加することです。
ここでの(2)は、NuGet 2.5プロジェクトの NuGet パッケージを作成するときに、同じソリューション内の他のプロジェクトへの参照を含めるオプションを追加できます。
nuget pack projectfile.csproj -IncludeReferencedProjects
projectfile.csproj
ソリューション内の他のプロジェクトを参照し、NuGetパッケージとして公開されている場合、これらのプロジェクトのNuGet パッケージ依存関係として追加されます。- ソリューション内のプロジェクトを参照している場合、しないNuGetパッケージとして公開され、dllsこの NuGet パッケージに含まれます。
(1) については、NuGet パッケージとして利用できない dll をプロジェクトに頻繁に追加する場合は、これらのファイルを使用して独自の (内部) NuGet パッケージを作成することができます。その後、これらの dll をファイルを直接追加するのではなく、NuGet パッケージとして追加すると、この NuGet パッケージはプロジェクトの NuGet パッケージの依存関係になります。