ファイルを使用してpackages.config
NuGet の依存関係を指定する場合、allowedVersions属性を指定して、更新できるバージョンの範囲を定義するSemVer文字列を指定できます。を使用する[]
ことで、現在、パッケージを単一のバージョンに効果的に固定できます。例えば:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Common.Logging" version="3.3.0" allowedVersions="[3.3.0, 3.3.0]" />
</packages>
.net コア プロジェクトではproject.json
、NuGet の依存関係を指定する必要があります (短命かもしれません)。NuGet の依存関係をdotnet restore
、アプリケーションを新しいバージョンに更新しないようなバージョンに固定するにはどうすればよいですか?パッケージソース?
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Newtonsoft.Json": "9.0.1" //how can i pin to 9.0.1 ??
},
}
このnuget ドキュメントの図 #2 は、これが可能であることを暗示していますが、それを行うための構文は提供していません。
- アップデート -
2 つの .net コア クラス ライブラリとローカル ファイル システムをパッケージ リポジトリとして使用して、これをテストしました。という名前のクラス ライブラリを作成し、UpdateMeDependencyLib
v1.0.0 としてパッケージ化して、2 番目のプロジェクトから nuget 経由で使用しました。以下は、2 番目のクラス ライブラリを使用する project.json です。UpdateMeDependencyLib
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"UpdateMeDependencyLib": "1.0.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
その後、バージョン 1.1.0 に更新UpdateMeDependencyLib
して再パッケージ化したため、ローカル システムには v1.0.0 と v1.1.0 の nuget パッケージが存在します。の v1.1.0 を作成した後UpdateMeDependencyLib
、次のエクスペリエンスが得られます
UpdateMeDependencyLib
出力 v1.1.0 をその bin ディレクトリに 消費する Visual Studio でプロジェクトをコンパイルする (コンシューマー project.json を変更しない)- コンシューマー ライブラリでパッケージの復元を強制すると、Nuget の警告が表示されるようになりました。
そのため、消費ライブラリで「1.0.0」を使用するだけではピン留めされず、NuGet ソースに新しいバージョンが表示されると自動的に更新されます。