我按照instruction创建了新的.NET Core项目,并从cmd:
运行dotnet new
dotnet restore
第二个语句创建包含大量垃圾的project.lock.json
(不是真正的垃圾,而是大量的依赖,配置等)。我假设这些依赖项是.NET框架,它被分解为单独的NuGet包。
我的问题:
答案 0 :(得分:96)
更新:project.json
已被.csproj
替换为.NET标准项目的主项目文件。这个问题是在引入PackageReference in NuGet 4.0之前的旧系统。
您可能偶尔会将project.lock.json
视为构建过程的工件,但应该忽略它。管理.NET Standard / .NET Core项目所依赖的NuGet包应始终由
.csproj
文件dotnet add package
等) 旧答案:当您还原项目的包时,.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 ,这是我最喜欢的选择;)