Nuget在更新操作期间使用什么比较机制来检查是否在主机项目中修改了包内容文件?
答案 0 :(得分:1)
Nuget使用CRC(循环冗余校验)将原始包文件与已在主机项目中提取的版本进行比较。
它计算包文件和提取文件的32位CRC并比较这些值。以下Stream扩展方法用于比较:
public static bool ContentEquals(this Stream stream, Stream otherStream)
{
return Crc32.Calculate(stream) == Crc32.Calculate(otherStream);
}