我关注了instruction创建新的 .NET Core 项目并从 cmd 运行它:
dotnet new
dotnet restore
第二条语句创建了 project.lock.json
,其中包含大量垃圾(不是真正的垃圾,而是大量的依赖项、配置等)。我假设这些依赖项是 .NET 框架,它被分解为单独的 NuGet 包。
我的问题:
- 我的假设正确吗?
- 我可以通过删除不需要的 NuGet 包/依赖项来简化我的应用程序吗?
- 如何?
最佳答案
更新:project.json
已替换为 .csproj
作为 .NET Standard 项目的主项目文件。这个问题指的是之前介绍的旧系统PackageReference in NuGet 4.0 .
您可能仍然偶尔会看到 project.lock.json
作为构建过程的工件,但应该忽略它。管理 .NET Standard/.NET Core 项目所依赖的 NuGet 包应始终通过以下任一方式完成:
- 直接编辑
.csproj
文件 - 使用dotnet CLI (
dotnet 添加包
等) - 如果您使用的是 Visual Studio,请使用包管理器 GUI
旧答案供后代使用:project.lock.json
是在恢复项目包时由 .NET 工具生成的。您不应该触摸它或将其 checkin 源代码管理。直接编辑 project.json
。
在包恢复过程 (dotnet Restore
) 中,NuGet 必须分析项目中的依赖项,遍历其依赖关系图,并找出应安装哪些包对于您的项目和项目的依赖项。
这是一项不小的工作量,因此结果缓存在 project.lock.json
中,以使后续恢复更快、更高效。如果修改project.json
并再次执行dotnet Restore
,将会重新生成锁定文件。
关于.net - 什么是project.lock.json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38065611/