[解決済み] 参照される依存関係を含むNuGetパッケージの自動ビルド
質問
私は
ローカル/内部 NuGet リポジトリを実行したい。
. 既存の NuGet パッケージを NuGet を使用してダミー プロジェクトに含めることによって "再利用" する方法を見つけたと思い、パッケージ ファイルをスキャンして
を取得し、ローカルにキャッシュされた
.nupkg
ファイル
が、しかし...
どのようにnugetパッケージを作成するのですか(
.nupkg
) を作成し、自動的に
すべて
dll
NuGet経由で取得したものだけでなく、すべての依存関係を取得しますか?
具体的には
- ソリューションの作成
- 新しいプロジェクトを追加する
-
さまざまな
.dll
ファイルや他のプロジェクト <-- これが不足している部分です - パッケージマネージャ / コマンドライン / その他で NuGet パッケージを追加します。
-
何か
は自動的に
.nupkg
私が調べたところでは、次のようなことをすることになっているようです。
-
を手動で編集する。
.csproj
ファイルを編集して<BuildPackage>true</BuildPackage>
を追加し、依存関係を含めるようにします。 -
を手動で作成し
.nuspec
ファイルを作成し、手動で 依存関係をリストアップする ( 似たような? ) -
手動で実行する
nuget pack
を実行します。.nuspec
ファイル
しかし、すべてが手動であるのは愚かなことです。 半自動的な解決策でさえ、まだぎこちない、あるいは半手動のままです。
-
作成
.nuspec
テンプレート - は依存関係を含まず、メタデータのみを含むようです。 -
build-event経由のnugetパック (ステップ #5) は、すべてのプロジェクトに手動で追加する必要がありますが、これには 独自の癖がある :
"$(SolutionDir).nuget\NuGet.exe" pack "$(ProjectPath)" -Properties Configuration=Release move /Y *.nupkg "$(TargetDir)"
を自動的に作成するようなものに落ち着きますね。
.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パッケージの依存関係になります。
関連
-
[解決済み] システムトレイにあるvshub.exeとは何ですか?
-
[解決済み] ERROR: ソースファイル " " を開くことができません。
-
[解決済み] NuGetで旧バージョンのパッケージをダウンロードする
-
[解決済み] デバッグビルドのみVisual Studioのポストビルドイベントを実行する方法
-
[解決済み] NuGetパッケージの.nupkgファイルをローカルにインストールするにはどうしたらいいですか?
-
[解決済み] コマンドラインを使用してNuGetパッケージのキャッシュをクリアするにはどうすればよいですか?
-
[解決済み] すべてのbinとobjフォルダを削除して、すべてのプロジェクトを強制的にリビルドさせたい
-
[解決済み】NuGetパッケージが見つからない
-
[解決済み】Visual StudioのRebuildとClean + Buildの違いについて
-
[解決済み] NuGetパッケージにクラスライブラリのXml Docsを含めるにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] システムトレイにあるvshub.exeとは何ですか?
-
[解決済み] Visual Studioの編集ウィンドウを分割する
-
[解決済み] エラーメッセージ "制約契約名に一致するエクスポートが見つかりませんでした。"
-
[解決済み] Visual Studio 2013 ソリューションを Visual Studio 2015 にアップグレードする。
-
[解決済み] 突然のシャットダウン後、Visual Studio 2017 コミュニティ版をインストールできない
-
[解決済み] Visual Studio 2015でexeファイル(ucrtbased.dll)が実行できないのはなぜですか?
-
[解決済み] コードのすべてのセクションを折りたたむコマンド?
-
[解決済み] VS 2017でデバッグ停止時にブラウザを自動で閉じないようにする方法
-
[解決済み] Visual Studioで2つのプロジェクトを同時に実行する
-
[解決済み】Visual Studio Communityは30日体験版ですか?