You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ClickOnce部署后git上传出现TextWiz.deps.json哈希不匹配错误求助

错误含义

该错误说明ClickOnce部署清单中记录的TextWiz.deps.json文件哈希值,与用户下载到本地的文件实际计算出的哈希值不匹配。ClickOnce通过哈希校验确保部署文件未被篡改或意外修改,当两者不一致时会阻止安装,以此保障应用的完整性。

可能原因

使用命令行Git上传时,Git默认的换行符转换规则(将Windows系统的CRLF换行符转为LF)可能修改了TextWiz.deps.json的内容,导致文件哈希值发生变更,与ClickOnce发布时生成的清单记录不符。而手动上传时未触发该转换,因此此前部署正常。

解决方法
  • 配置Git避免修改目标文件:
    在项目根目录创建.gitattributes文件,添加以下内容,将TextWiz.deps.json标记为二进制文件,禁止Git对其进行换行符转换或其他文本处理:

    TextWiz.deps.json binary
    

    提交该文件到仓库后,重新发布ClickOnce应用并上传。

  • 清理Git缓存并重新提交文件:
    如果文件已被Git错误修改并提交,执行以下命令重置缓存并重新添加正确的文件版本:

    git rm --cached TextWiz.deps.json
    git add TextWiz.deps.json
    git commit -m "Fix deps.json hash mismatch"
    git push origin main
    
  • 重新发布并校验本地文件:
    重新发布ClickOnce应用后,先在本地校验文件哈希是否匹配:

    1. 使用PowerShell计算本地TextWiz.deps.json的SHA256哈希:
      Get-FileHash -Path ".\Application Files\TextWiz_1_0_0_9\TextWiz.deps.json" -Algorithm SHA256
      
    2. 打开TextWiz.dll.manifest文件,查找对应TextWiz.deps.json的hash节点,确认哈希值是否一致。若不一致,重新执行发布流程。
  • 禁用全局Git换行符转换(可选):
    如果不需要Git自动转换换行符,可全局关闭该功能(会影响所有本地Git仓库,需谨慎操作):

    git config --global core.autocrlf false
    

内容的提问来源于stack exchange,提问作者Carson Ouckama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 04:50:23