Commit 217934c
test(IE): 兼容 net471 上 ZipArchiveEntry.Crc32 不存在
CI matrix 在 windows/net471 job 上真实跑测试, commit 7abb16a 引入了
DrawingsFlush_Tests.cs:196 直接用 entry.Crc32 属性, 但该属性是 .NET
Core 2.0+ 才加入, .NET Framework 4.7.1 不存在 → CI Build 步骤失败阻塞 17 个 job.
修复:
- net471 上走手算 CRC32 (zip 规范 IEEE 802.3, poly=0xEDB88320 reflected)
- 其他 TFM 继续用原生 ZipArchiveEntry.Crc32 属性
- 表按 poly 运行时生成, 避免硬编码 256 项引入抄写错误
- 算法循环风格对齐 dotnet/runtime Crc32ParameterSet.UpdateScalar
验证:
- 字节级一致: System.IO.Hashing.Crc32 vs 手算 (11 个样本 + png 实测)
- 真实 zip entry: entry.Crc32 vs Hashing.Crc32 vs 手算 stream (四路一致)
- 5 个 TFM 编译通过; net8.0 上 4/4 测试通过
- net471 runtime 验证: CI windows/net471 job 实际执行 (本机 macOS 无
.NET Framework 4.7.1 SDK, 只能在 CI 上验证)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 7abb16a commit 217934c
1 file changed
Lines changed: 54 additions & 0 deletions
Lines changed: 54 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
| 188 | + | |
188 | 189 | | |
189 | 190 | | |
190 | 191 | | |
| |||
193 | 194 | | |
194 | 195 | | |
195 | 196 | | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
196 | 203 | | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
197 | 250 | | |
| 251 | + | |
198 | 252 | | |
199 | 253 | | |
0 commit comments