使用ASP.NET Core 1.0,将project.lock.json文件签入源代码管理是最佳做法吗?
使用ASP.NET Core 1.0,将project.lock.json文件签入源代码管理是最佳做法吗?
Short answer:不,project.lock.file不应该签入到源代码管理中-您应该将版本控制系统配置为忽略它(即,如果您使用的是git,则将其添加到.gitignore).
Long answer:这个项目.锁json包含项目整个依赖关系树的快照——不仅包括"依赖关系"部分中列出的包,还包括这些依赖关系的所有已解析依赖关系,等等.但它不像ruby的Gemfile.lock.不像Gemfile.锁定,项目.锁json没有告诉dotnet restore
应该恢复哪些确切版本的软件包——它只是被覆盖.因此,它应该像缓存文件一样对待,永远不要签入源代码管理.
如果将其签入版本控制,则很可能在其他计算机上:
dotnet
会认为所有包都已恢复,但事实上,有些包可能丢失,构建将失败,而不会提示开发人员运行dotnet restore
dotnet restore
年内被覆盖,并且在大多数情况下将与源代码管理中存储的版本不同.因此,它几乎会在每次提交时都被修改