我按照说明创建了一个新的.NET Core项目,并通过cmd运行了该项目:
dotnet new
dotnet restore
第二条语句创建project.lock.json
包含很多垃圾(不是真正的垃圾,而是大量的依赖项,配置等)。我假设这些依赖项是.NET框架,该框架分解为单独的NuGet包。
我的问题:
- 我的假设正确吗?
- 我可以通过删除不需要的NuGet软件包/依赖项来减轻我的应用程序的负担吗?
- 怎么样?
我按照说明创建了一个新的.NET Core项目,并通过cmd运行了该项目:
dotnet new
dotnet restore
第二条语句创建project.lock.json
包含很多垃圾(不是真正的垃圾,而是大量的依赖项,配置等)。我假设这些依赖项是.NET框架,该框架分解为单独的NuGet包。
我的问题:
Answers:
更新:project.json
已被替换.csproj
为.NET Standard项目的主要项目文件。此问题涉及NuGet 4.0中引入PackageReference之前的旧系统。
您可能仍然偶尔会将其project.lock.json
视为构建过程的工件,但应将其忽略。.NET Standard / .NET Core项目所依赖的NuGet软件包的管理应始终由以下任一者完成
.csproj
直接编辑文件dotnet add package
,etc)后代的旧答案:project.lock.json
当您恢复项目的程序包时,它是由.NET工具生成的。您不应该触摸它或将其检入源代码管理。project.json
直接编辑。
在包还原过程(dotnet restore
)中,NuGet必须分析项目中的依赖关系,遍历它们的依赖关系图,并确定应为您的项目安装哪些包以及项目的依赖关系。
这是一项艰巨的工作,因此将结果缓存起来,project.lock.json
以使后续还原更快,更有效。如果project.json
修改并dotnet restore
再次执行该锁定文件,将重新生成该锁定文件。
每隔一段时间,在我们的团队中,当有人更新一些nuget时,我们就会遇到相同的问题,即使运行dotnet restore ,lock.json文件也不会得到更新,因此,在应用最后一个选择(删除它们)之前,我建议运行grunt从您的命令行。如果这不起作用,请删除所有lock.json文件并运行dotnet restore,这是我最喜欢的选择;)
project.lock.json
?
package-lock.json
与project.lock.json