什么是project.lock.json?

时间:2016-06-28 01:19:00

标签: .net .net-core project.json

我按照instruction创建了新的.NET Core项目,并从cmd:

运行
dotnet new
dotnet restore

第二个语句创建包含大量垃圾的project.lock.json(不是真正的垃圾,而是大量的依赖,配置等)。我假设这些依赖项是.NET框架,它被分解为单独的NuGet包。

我的问题:

  1. 我的假设是否正确?
  2. 我可以通过删除不需要的NuGet包/依赖项来使我的应用程序变亮吗?
  3. 如何?

2 个答案:

答案 0 :(得分:96)

更新project.json已被.csproj替换为.NET标准项目的主项目文件。这个问题是在引入PackageReference in NuGet 4.0之前的旧系统。

您可能偶尔会将project.lock.json视为构建过程的工件,但应该忽略它。管理.NET Standard / .NET Core项目所依赖的NuGet包应始终由

完成
  • 直接编辑.csproj文件
  • 使用dotnet CLIdotnet add package等)
  • 如果您使用的是Visual Studio
  • ,请使用Package Manager GUI
后代的

旧答案:当您还原项目的包时,.NET工具会生成project.lock.json。您不应该触摸它或将其检入源代码管理中。直接修改project.json

在包恢复过程(dotnet restore)期间,NuGet必须分析项目中的依赖关系,遍历他们的依赖关系图,并找出应为项目安装的包和你的项目的依赖。

这是一项非常重要的工作,因此结果会缓存在project.lock.json中,以便更快,更高效地进行后续恢复。如果修改project.json并再次执行dotnet restore,则会重新生成锁定文件。

答案 1 :(得分:2)

每隔一段时间,在我们的团队中,当有人更新某些nuget时,我们遇到同样的问题,lock.json文件会更新,甚至运行 dotnet restore 所以,之前应用最后一个选项(删除它们)我建议从命令行运行 grunt 。 如果这不起作用,请删除所有lock.json文件并运行 dotnet restore ,这是我最喜欢的选择;)