.net core:为什么dotnet restore会生成一个"锁定"文件,它的用途是什么?

Tro*_*yvs 1 .net locking restore .net-core

我是dot.net核心的新手,尝试了样本,dotnet new,dotnet restore,dotnet run.

在第二步(dotnet恢复)后,我尝试删除此锁定文件,然后"dotnet run"失败,因为它说它需要一个锁定文件.为什么Microsoft设计了这样的"锁定"文件?为什么"run"命令需要这样的锁文件?

如果此锁定文件旨在阻止多个进程构建项目,那么它只需要是一个空文件,充当"锁定".但事实上,与其他源代码相比,这个文件非常大.

Jon*_*eet 8

如果查看锁定文件,您将看到它包含已传输的每个依赖项的确切版本的详细信息.这会"锁定"该版本集,直到dotnet restore再次运行.

我相信至少目的让开发人员决定是否将project.lock.json文件检查到源代码控制中,从而更好地控制何时使用更新的依赖项.我认为关于何时/是否这是一个好主意还存在争议.

它还允许多个工具直接查看依赖图,而无需再次计算它(如果依赖关系发生变化,则可能以不稳定的方式).