Asp.net core dotnetcore:in.deps.json中使用的sha512和shaPath属性是什么

Asp.net core dotnetcore:in.deps.json中使用的sha512和shaPath属性是什么,asp.net-core,.net-core,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+EjnD86gRQUGyiVfqo

我对在构建项目时创建的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构建代理在两台机器上使用相同的dotnet版本进行的。这两台机器之间唯一可见的区别是应用程序工作目录的绝对路径,在.deps.json中不可见

简言之,sha512和shaPath属性在.deps.json文件中的作用是什么?它们是如何生成的?

我想出来了

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

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

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

我找到了答案

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

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


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

谢谢,在部署到生产环境时,我们需要确保这些更改不会破坏系统:但是如何修复它呢?Gitignore不会有任何帮助,因为需要该文件。如果签入这些文件,除了在所有环境中保持本地git repo在同一路径外,您无法解决这些差异。谢谢,在部署到生产环境时,我们需要确保这些更改不会破坏系统:但是如何修复它?Gitignore不会有帮助,因为需要该文件。如果签入这些文件,除了在所有环境中保持本地git repo在同一路径外,您无法处理这些差异。