76

我按照说明创建新的 .NET Core 项目并从 cmd 运行它:

dotnet new
dotnet restore

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

我的问题:

  1. 我的假设正确吗?
  2. 我可以通过删除不需要的 NuGet 包/依赖项来使我的应用程序更轻量级吗?
  3. 如何?
4

2 回答 2

102

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

您可能仍会偶尔将project.lock.json其视为构建过程的产物,但应该忽略它。管理 .NET Standard/.NET Core 项目所依赖的 NuGet 包应始终由以下任一方来完成

  • 直接编辑.csproj文件
  • 使用dotnet CLI (dotnet add package等)
  • 如果您使用的是 Visual Studio,请使用包管理器 GUI

后代的旧答案project.lock.json:在您恢复项目的包时由 .NET 工具生成。您不应该触摸它或将其签入源代码管理。直接编辑project.json

在包还原dotnet restore过程(

这是一项非常重要的工作,因此会将结果缓存起来,project.lock.json以使后续恢复更快、更高效。project.json锁文件被修改后会重新生成并dotnet restore再次执行。

于 2016-06-28T02:04:05.170 回答
2

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

于 2017-05-30T07:15:17.527 回答