什么是project.lock.json?
我按照说明创build了新的.NET Core项目,并从cmd运行:
dotnet new dotnet restore
第二个语句创build了包含大量垃圾(不是真的垃圾,而是大量依赖,configuration等)的project.lock.json
。 我假设这些依赖是.NET框架,分解成单独的NuGet包。
我的问题:
- 我的假设是否正确?
- 我可以通过删除不需要的NuGet包/依赖关系来使我的应用程序更轻?
- 怎么样?
简单的答案: project.lock.json
是由.NET工具生成的,当你恢复项目的包。 你不应该触摸它或检查它到源代码pipe理。 直接编辑project.json
。
更长的答案:在包恢复过程中(networkingdotnet restore
),NuGet必须分析项目中的依赖关系,走他们的依赖关系图,找出应该为项目安装哪些包以及项目的依赖关系。
这是一个不重要的工作,所以结果被caching在project.lock.json
以使得后续的恢复更快,更高效。 如果修改了project.json
,并且再次执行了dotnet restore
,locking文件将被重新生成。
在我们的团队中,当有人更新一些nuget时,我们遇到同样的问题,lock.json文件不会被更新,甚至在运行dotnet恢复的时候,在应用最后的select(删除它们)之前,我build议运行grunt从你的命令行。 如果不行,删除所有的lock.json文件并运行dotnet恢复 ,这是我最喜欢的select;)