使用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相关问答推荐

在 AppConfig.json 中存储对象的最佳方式

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

我可以在 .net 核心中使用 Entity Framework 6(非核心)吗?

无法访问,内部,资源文件?

如何在 ASP.NET Web 窗体中使用依赖注入

如何使用 ASP.NET Identity 创建用户并获取新创建的 ID

为什么对 ASP.NET MVC 控制器的调用不执行 DelegatingHandler?

在 ASP.NET Core 1.0 上处理大文件上传

Asp.net Identity 密码哈希

如何使用 app_GlobalResource 或 app_LocalResource?

如何从 SQL Server 2008 本身获取客户端 IP 地址?

SimpleMembership 与 ASP.NET MVC 4 中的自定义数据库架构

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

要调用此方法,Membership.Provider属性必须是ExtendedMembershipProvider的实例

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

如何在实体框架中添加表?

无法在 IIS 中启动网站 - W3SVC 正在运行

使用 ASP.NET 进行重定向后获取

在 ASP.NET MVC 中模拟 User.Identity

我可以在加载事件时从 C# 的 div 标记中动态添加 HTML 吗?