project.lock.jsonとは何ですか?
質問
私は 命令 の指示に従って、新しい .NET Core プロジェクトを作成し、cmd からこれを実行しました。
dotnet new
dotnet restore
2番目のステートメントでは
project.lock.json
を作成し、そこには多くのゴミが含まれています (本当のゴミではありませんが、大量の依存関係、設定など)。これらの依存関係は、個別の NuGet パッケージに分割された .NET フレームワークであると推測されます。
私の質問です。
- 私の仮定は正しいですか?
- 不要なNuGetパッケージ/依存関係を削除することで、アプリケーションを軽量化することは可能ですか?
- どのようにすればよいのでしょうか?
どのように解決するのですか?
更新
:
project.json
は
.csproj
を.NET Standardプロジェクトのメインプロジェクトファイルとして使用します。この質問は、.NET 標準プロジェクトに
NuGet 4.0でのPackageReference
.
まだ時々
project.lock.json
をビルド プロセスのアーティファクトとして見ることがありますが、無視する必要があります。.NET Standard/.NET Core プロジェクトが依存する NuGet パッケージの管理は、常に次のいずれかの方法で行う必要があります。
-
を編集する。
.csproj
ファイルを直接編集する -
を使うことで
ドットネットCLI
(
dotnet add package
など) - Visual Studio を使用している場合は、パッケージ マネージャー GUI を使用します。
古い回答
を後世に残すために。
project.lock.json
は、プロジェクトのパッケージをリストアするときに.NETツールによって生成されます。これに触れたり、ソースコントロールにチェックしたりしてはいけません。編集
project.json
を直接編集してください。
パッケージのリストア処理中 (
dotnet restore
)、NuGet はプロジェクトの依存関係を分析する必要があります。
その
NuGet はプロジェクトの依存関係を分析し、依存関係グラフを歩き、あなたのプロジェクトとあなたのプロジェクトの依存関係のためにどのパッケージをインストールすべきかを見つけなければなりません。
これは自明ではない量の作業なので、結果はキャッシュされ
project.lock.json
にキャッシュされ、その後のリストアをより速く、より効率的にします。ロックファイルは、以下の場合に再生成されます。
project.json
が変更され
dotnet restore
が再び実行される。
関連
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] ファイルまたはアセンブリ 'System.Data.SQLite' をロードできませんでした。
-
[解決済み] gacutil.exeはどこですか?
-
[解決済み] VB.NETでファイル名を一意のサフィックスに変更するには?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersionの違いは何ですか?
-
[解決済み] dotnetリストア警告 NU1701
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] ファイル *.mdf をデータベースとして添付できません。
-
[解決済み] C++/CLIにおけるキャレット('^')の意味は?
-
[解決済み] VS2017/2015 で .xproj ファイルを開く方法
-
[解決済み] 24:00:00 を超える値を持つ .Net Timespan を格納するための正しい SQL タイプは何ですか?
-
[解決済み] VB.NETでファイル名を一意のサフィックスに変更するには?
-
[解決済み] Powershell v3 Invoke-WebRequest HTTPSエラー
-
[解決済み] このコンピュータには、.NET Framework 4.6またはそれ以降の更新プログラムがすでにインストールされています。
-
[解決済み] RelativeSourceでWPFバインディングを使用するにはどうしたらいいですか?
-
[解決済み] Microsoft.ACE.OLEDB.12.0' プロバイダがローカルマシンに登録されていません。