使用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
  • 项目锁json将在dotnet restore年内被覆盖,并且在大多数情况下将与源代码管理中存储的版本不同.因此,它几乎会在每次提交时都被修改
  • 项目锁json将在合并期间导致冲突

Asp.net相关问答推荐

Razor中的共享本地化资源文件

分层架构中的 ASP.NET 和实体框架 - 仅将实体框架用于 ORM

我们可以在一个网页中使用多个表单吗?

AppendHeader 是否与 AddHeader 完全相同?

Azure Service Fabric 是否与 Docker 做同样的事情?

说服遗留应用程序 VB6 开发人员切换到 C#

使用 JavaScript 更改 ASP.NET 标签的可见性

文本框的输入按键触发事件

忽略默认文档的表单身份验证

Twitter bootstrap glyphicons 不会出现在发布模式 404 中

在 IIS 上托管 ASP.NET 5 项目

问题映射 HttpHandler --> HTTP Error 404 Not Found

Asp.net 中的下拉列表验证使用必填字段验证器

ASP.NET 中的全局资源与本地资源

IIS Express - 增加内存限制

MVC 4 - Razor - 将变量传递到 href url

VS2017 无法加载文件或程序集 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 或其依赖项之一

具有自定义报告创建能力的最佳 ASP.NET 报告引擎

如何将我的 DDD 模型中的用户与身份验证用户集成?

使用 jQuery 从 asp:RadioButtonList 读取选定的值