asp.net-core - 点网核心 : What are the sha512 and shaPath properties used for in . deps.json

标签 asp.net-core .net-core

我对在构建项目时创建的 dotnet core .deps.json 文件有一个比较深入的问题。

我们在两台不同的机器上构建项目,当比较在机器上生成的 .deps.json 文件时,所有行都是相同的,除了一些 json 的“库”部分中的实体的 sha512 属性对象。

"libraries": {
"App.Metrics/3.0.0": {
  "type": "package",
  "serviceable": true,
  "sha512": "sha512-lU4mow+EjnD86gRQUGyiVfqoURXQuXdgJHAdqJxqhujUs1ItAZJNlQxQmswZsYmYfsrrrq3hswTXAutOdsQGMQ==",
  "path": "app.metrics/3.0.0",
  "hashPath": "app.metrics.3.0.0.nupkg.sha512"
},
"App.Metrics.Abstractions/3.0.0": {
  "type": "package",
  "serviceable": true,
  "sha512": "sha512-5X12M6AzBuJUE1LjRXrOo5HnbekICFd7/8A0L0IEe021P2EVEyxbeOZLOKloGwUiTlJ6Uic/K130CI/kylyvFg==",
  "path": "app.metrics.abstractions/3.0.0",
  "hashPath": "app.metrics.abstractions.3.0.0.nupkg.sha512"
}
.......

我需要帮助来弄清楚为什么这些哈希因构建项目的机器而异。

值得一提的是,构建是通过 TeamCity BuildAgent 在两台机器上使用相同的 dotnet 版本进行的。两台机器之间唯一可见的区别是应用程序工作目录的绝对路径,在 .deps.json 中不可见。

因此,简而言之:.deps.json 文件中的 sha512 和 shaPath 属性是什么,它们是如何生成的?

最佳答案

我想通了。

sha512 属性是本地 Nuget 缓存中 Nuget 包位置的绝对路径的哈希版本。 这意味着如果两个不同的用户正在构建项目,这些值在构建之间可能会有所不同,因为 Nuget 缓存通常位于当前用户的主文件夹中。

我基本上需要向我们的合规团队解释这种差异,并确保 sha512 属性不代表 nuget 包或其完整性的某种校验和。

我会保留该线程,希望它对将来遇到相同问题的其他用户有用。

关于asp.net-core - 点网核心 : What are the sha512 and shaPath properties used for in . deps.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54538068/

相关文章:

c# - ASP.NET Core 3.1 URL 链接到需要授权的页面,给出错误防伪 token 验证失败

c# - 如何使用 EF Core 在 .NET core 3.1(不带 LINQ)中创建用于 CRUD 操作的自定义扩展方法?

angular - 将 IFormFile 附加到邮件而不保存文件

c# - 如何使用 FFMpeg 转码数据流 (C#)

asp.net-core - .NET Core MVC 页面更改后不刷新

c# - 如何从 ASP.NET Core 中的 Program.cs 访问 IWebHostEnvironment

c# - ExecuteStoredProcedureAsync() 返回不同的结果

proxy - dotnet restore 使用公司代理失败

azure - .NET Core 3.0 工作线程 - 无法使用 Application Insights 或 EventLog 进行日志记录

asp.net-core - 如何从 Nuget 更新中锁定包版本