1. ホーム
  2. visual-studio

[解決済み] 参照される依存関係を含むNuGetパッケージの自動ビルド

2023-01-03 06:26:32

質問

私は ローカル/内部 NuGet リポジトリを実行したい。 . 既存の NuGet パッケージを NuGet を使用してダミー プロジェクトに含めることによって "再利用" する方法を見つけたと思い、パッケージ ファイルをスキャンして を取得し、ローカルにキャッシュされた .nupkg ファイル が、しかし...

どのようにnugetパッケージを作成するのですか( .nupkg ) を作成し、自動的に すべて dll NuGet経由で取得したものだけでなく、すべての依存関係を取得しますか?

具体的には

  1. ソリューションの作成
  2. 新しいプロジェクトを追加する
  3. さまざまな .dll ファイルや他のプロジェクト <-- これが不足している部分です
  4. パッケージマネージャ / コマンドライン / その他で NuGet パッケージを追加します。
  5. 何か は自動的に .nupkg

私が調べたところでは、次のようなことをすることになっているようです。

  • を手動で編集する。 .csproj ファイルを編集して <BuildPackage>true</BuildPackage> を追加し、依存関係を含めるようにします。
  • を手動で作成し .nuspec ファイルを作成し、手動で 依存関係をリストアップする ( 似たような? )
  • 手動で実行する nuget pack を実行します。 .nuspec ファイル

しかし、すべてが手動であるのは愚かなことです。 半自動的な解決策でさえ、まだぎこちない、あるいは半手動のままです。

を自動的に作成するようなものに落ち着きますね。 .nuspec マニフェストを自動的に作成するようなものに落ち着くでしょう。 それから、理論的には、それ + nuget build-event は build-project/nuget パッケージにまとめることができ、それは私が本当に見たいものです。

どのように解決するのですか?

あなたのポイント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パッケージの依存関係になります。