什么是 project.lock.json?
What is project.lock.json?
我按照 instruction 创建新的 .NET Core 项目,运行 从 cmd:
dotnet new
dotnet restore
第二个语句创建 project.lock.json
,其中包含大量垃圾(不是真正的垃圾,而是大量的依赖项、配置等)。我假设这些依赖项是 .NET 框架,它被分解成单独的 NuGet 包。
我的问题:
- 我的假设正确吗?
- 我可以通过删除不需要的 NuGet 使我的应用程序更轻量吗packages/dependencies?
- 如何?
更新:project.json
已替换为 .csproj
作为 .NET Standard 项目的主项目文件。本题参考PackageReference in NuGet 4.0.
引入前的旧系统
您可能偶尔会看到 project.lock.json
作为构建过程的产物,但应该忽略它。管理 .NET Standard/.NET Core 项目所依赖的 NuGet 包应该始终由
- 直接编辑
.csproj
文件
- 使用 dotnet CLI(
dotnet add package
等)
- 如果您使用 Visual Studio
,请使用包管理器 GUI
后代的旧答案:project.lock.json
是在您恢复项目包时由 .NET 工具生成的。您不应该触摸它或将其签入源代码管理。直接编辑project.json
。
在包还原过程中 (dotnet restore
),NuGet 必须分析项目中的依赖关系,遍历 它们的 依赖关系图,并找出应该包含哪些包为您的项目和项目的依赖项安装。
这是一项非常重要的工作,因此将结果缓存在 project.lock.json
中以使后续恢复更快、更高效。修改project.json
,再次执行dotnet restore
,会重新生成锁文件
在我们的团队中,当有人更新一些 nuget 时,我们经常遇到同样的问题,lock.json 文件没有得到更新,甚至 运行ning dotnet restore 因此,在应用最后一个选择(删除它们)之前,我建议从您的命令行 运行 g运行t 。
如果这不起作用,请删除所有 lock.json 文件和 运行 dotnet restore,这是我最喜欢的选择 ;)
我按照 instruction 创建新的 .NET Core 项目,运行 从 cmd:
dotnet new
dotnet restore
第二个语句创建 project.lock.json
,其中包含大量垃圾(不是真正的垃圾,而是大量的依赖项、配置等)。我假设这些依赖项是 .NET 框架,它被分解成单独的 NuGet 包。
我的问题:
- 我的假设正确吗?
- 我可以通过删除不需要的 NuGet 使我的应用程序更轻量吗packages/dependencies?
- 如何?
更新:project.json
已替换为 .csproj
作为 .NET Standard 项目的主项目文件。本题参考PackageReference in NuGet 4.0.
您可能偶尔会看到 project.lock.json
作为构建过程的产物,但应该忽略它。管理 .NET Standard/.NET Core 项目所依赖的 NuGet 包应该始终由
- 直接编辑
.csproj
文件 - 使用 dotnet CLI(
dotnet add package
等) - 如果您使用 Visual Studio ,请使用包管理器 GUI
后代的旧答案:project.lock.json
是在您恢复项目包时由 .NET 工具生成的。您不应该触摸它或将其签入源代码管理。直接编辑project.json
。
在包还原过程中 (dotnet restore
),NuGet 必须分析项目中的依赖关系,遍历 它们的 依赖关系图,并找出应该包含哪些包为您的项目和项目的依赖项安装。
这是一项非常重要的工作,因此将结果缓存在 project.lock.json
中以使后续恢复更快、更高效。修改project.json
,再次执行dotnet restore
,会重新生成锁文件
在我们的团队中,当有人更新一些 nuget 时,我们经常遇到同样的问题,lock.json 文件没有得到更新,甚至 运行ning dotnet restore 因此,在应用最后一个选择(删除它们)之前,我建议从您的命令行 运行 g运行t 。 如果这不起作用,请删除所有 lock.json 文件和 运行 dotnet restore,这是我最喜欢的选择 ;)