packages.config
ファイルを使用してNuGetの依存関係を指定するときは、SemVerという文字列を指定して、更新可能にしたい文字列を指定することができます。 []
を使用することによって、私は現在、私のパッケージを単一のバージョンに効果的にピン留めすることができます。例:今、我々は(ただし、短い、それはかもしれ住んでいた)NuGetの依存関係を指定するproject.json
を持っている.NETコアプロジェクトでproject.json NuGetの依存関係の正確なバージョンを指定する
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Common.Logging" version="3.3.0" allowedVersions="[3.3.0, 3.3.0]" />
</packages>
、どのように私は、このようなことdotnet restore
が更新されないバージョンのNuGetの依存関係を固定することができ、私の新しいバージョンへのアプリケーションは、私のパッケージソースから入手できますか?このnuget documentationで
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Newtonsoft.Json": "9.0.1" //how can i pin to 9.0.1 ??
},
}
図#2はstronlyこれが可能である意味、それを行うための構文を提供していません。
- UPDATE -
私はパッケージリポジトリとして2つの.NETコアクラスライブラリと私のローカルファイルシステムでこれをテストしました。私はUpdateMeDependencyLib
と呼ばれるクラスライブラリを作成し、それをv1.0.0としてパッケージ化し、それをnuget経由で2番目のプロジェクトから使いました。以下は、私は、バージョン1.1.0へのUpdateMeDependencyLib
を更新し、再パッケージ化UpdateMeDependencyLib
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"UpdateMeDependencyLib": "1.0.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
を消費する第二クラスライブラリからproject.jsonがあるので、v1.0.0デベロッパーと私の地元のnugetパッケージV1.1.0は、今そこにありますシステム。 UpdateMeDependencyLib
のV1.1.0を作成した後、私は今
-
そのbinディレクトリに
- を取得します
- 私はパッケージが消費者のライブラリを復元強制した場合、私は今Nuget警告「NU1007依存関係は、指定がUpdateMeDependencyLib> = 1.0.0だったが、UpdateMeDependencyLib 1.1.0になってしまった」
UpdateMeDependencyLib
出力v1.1.0デベロッパーを消費(消費者project.jsonを変更することなく)Visual Studioでプロジェクトをコンパイルし、次の経験
だから、それをピンしないと、新しいバージョンが私のNuGetソースに表示されたとき、それは自動的に更新されます私の消費ライブラリーに「1.0.0」を使用して、単純に見えます。
「9.0.1」は、あなたが望むものとまったく同じです。 –
こんにちは@DannyChen私は私の質問にいくつかの詳細を追加しました。 「9.0.1」を使用しても私にとってはうまくいかないようです。 –