2

プロジェクトをビルドする前に、nuget のパッケージ復元がさまざまな必要なパッケージをダウンロードして「インストール」することを理解しています。しかし、これが実際にどのような目的に役立つのかわかりません。

私が知る限り、パッケージの復元中のパッケージの「インストール」は、パッケージの実際のインストールと同じではありません-たとえば、次の場合:

  1. jQuery パッケージをインストールします (これにより、プロジェクトの「スクリプト」ディレクトリに jQuery スクリプト ファイルが追加されることに注意してください)。
  2. 追加された jQuery スクリプト ファイルを削除する
  3. 「packages」ディレクトリを削除します (ステップ 2 と 3 は、ビルド マシンまたは他の開発者のマシンの状態をシミュレートします)。
  4. ビルドを実行します (パッケージの復元をトリガーします)

この時点で、ビルド状態

2>  Successfully installed 'jQuery 1.9.1'.

ただし、jQuery パッケージのスクリプト ファイルは「Scripts」フォルダーに追加されず、ファイルはプロジェクトに追加されません。

これは、とにかくこれらのファイルをソース管理にチェックインする必要があることを意味します。

これは、このパッケージを更新するときに、新しい/古いファイルの追加/削除を管理する必要があることも意味します (異なるバージョンのファイル名が使用されているため)。そうしないと、'Scripts' フォルダーが、バージョン管理されたスクリプト ファイルの無限の履歴でいっぱいになります。

とにかくすべてをチェックする必要があり、更新時にファイルの追加と削除を手動で管理する必要ある場合、ビルド時にパッケージを復元する利点は何ですか? これはどのような目的に役立ちますか?

もっと要点を言えば、パッケージのファイルをプロジェクトに自動的に追加するという明白な目的に、なぜこれが役立たないのでしょうか?

4

1 に答える 1

0

「パッケージをソース管理にコミットせずに NuGet を使用する」では、パッケージの復元の背後にある理由について説明しています。

パッケージの復元とは、パッケージフォルダーをソース管理にチェックインする必要がないことを意味します。プロジェクトで有効にすると、パッケージがダウンロードされ、不足している場合はビルド時にパッケージ フォルダーに戻されます。あなたが見つけたように、プロジェクトにパッケージファイルを追加しません。jQuery の場合、NuGet パッケージのすべてのファイルがプロジェクトに追加されます。ただし、他の NuGet パッケージには、1 つ以上のバイナリ ファイルが含まれています。

于 2013-02-07T09:20:54.167 に答える