web-dev-qa-db-ja.com

プレリリースを含むnuspec依存関係を作成する方法

いくつかのコンテキスト:

依存関係のある4つのnugetパッケージがあります。それらはすべてプレリリースモードであり、独自のペースでアルファから「安定」に進化します。依存関係の定義でプレリリースを含めるように指定できるようにしたいのですが、「安定した」バージョンが利用可能になると、安定したバージョンに更新する必要があります。

NuGet Docs では、バージョン管理のルールは、指定したバージョン番号を含めるために[]を定義し、除外するために()を定義しています。指定したバージョン番号。

Nuspecファイルのバージョンの影響に関するいくつかの例:

 <dependencies>
     <dependency id="MyComponent" version="1.2.0" />
 </dependencies>

==>これにより、MyComponent1.2.0以降がインストールされます。 (プレリリース1.2.0-alphaは含まれません)

 <dependencies>
     <dependency id="MyComponent" version="[1.2.0" />
 </dependencies>

==>これにより、MyComponent1.2.0以降がインストールされます。 (プレリリース1.2.0-alphaは含まれません)

 <dependencies>
     <dependency id="MyComponent" version="[1.2.0,2)" />
 </dependencies>

==>これにより、バージョン2.0.0までMyComponent1.2.0がインストールされます。 (プレリリース1.2.0-alphaは含まれませんが、プレリリース2.0.0-alphaは含まれます)

現在私が設定したもの:

 <dependencies>
     <dependency id="MyComponent" version="(1.1.32767" />
 </dependencies>

しかし、これは非常に醜い方法であり、実際には現実を反映していません。 (バージョン1.1.32767.1が存在する場合はどうなりますか?)

プレリリースバージョンを最小バージョンに含めることを指定する方法を知りたいですか?

23
Filip De Vos

注意すべき重要なことが1つあります。

プレリリースに依存すると、作成されたパッケージ自体もプレリリースになります。

依存関係のバージョン範囲を定義するときに、デフォルトでプレリリースが無視されるのは理にかなっています。これは、生成されるパッケージのバージョンを変更するためです(どのバージョンを選択するかがわからない場合)。

理想的には、インストール中に依存関係のバージョン範囲をチェックするアルゴリズムは、消費されたパッケージがプレリリースであるかどうかのチェックを実行し、許可されたバージョン範囲内のプレリリース依存関係を含めるか除外します。

これが現在当てはまるかどうかはわかりませんが、あなたの質問を見るとそうではないと思います。 http://nuget.codeplex.com で機能リクエストをログに記録する(またはプルリクエストを送信する)ことをお勧めします

14
Xavier Decoster