SignTool 未使用 SHA256 签署 ClickOnce 应用程序,仅使用 SHA1

2023-11-25

我正在尝试签署我的 clickonce 应用程序。我有一个使用 SHA256 的 EV 代码签名证书。问题是,当我使用构建后命令签署我的应用程序时,它似乎使用 SHA1 而不是 SHA256。这是输出窗口的剪辑:

Running Code Analysis...
1>  Code Analysis Complete -- 0 error(s), 0 warning(s)
1>  The following certificate was selected:
1>      Issued to: Certificate Subject Name Here
1>  
1>      Issued by: DigiCert EV Code Signing CA (SHA2)
1>  
1>      Expires:   Thu Apr 14 06:00:00 2016
1>  
1>      SHA1 hash: HASH-HERE
1>  
1>  
1>  Done Adding Additional Store
1>  Successfully signed and timestamped: C:\Users\AnyBody\Documents\Visual Studio 2013\Projects\My Project\Project Folder\obj\x86\My Configuration\MyProgram.exe
1>  
1>  
1>  Number of files successfully Signed: 1
1>  
1>  Number of warnings: 0
1>  
1>  Number of errors: 0

这是我正在使用的构建后命令:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe" sign /fd SHA256 /t "http://timestamp.digicert.com" /n "Certificate Subject Name Here" /v "$(ProjectDir)obj\x86\$(ConfigurationName)\$(TargetFileName)"

当我查看文件的属性时,我可以看到 MyProgram.exe.deploy 附加了数字签名。

当我运行signtool /verify 时没有返回错误

当我尝试启动应用程序时,收到错误“应用程序验证未成功。无法继续”。

在错误信息的详细信息中,有这样一行:

+ File, MyProgram.exe, has a different computed hash than specified in manifest.

当我打开并查看清单时,MyProgram.exe 的哈希值被指定为 SHA256

可能是什么问题呢?是什么让signtool拒绝使用SHA256?根据我的阅读,它应该默认使用 SHA256。

我已经卸载/重新安装了 Visual Studio、Windows sdk、所有已安装的 .net 库,但均无济于事。

我真的希望有人有想法......


您在使用 WPF 应用程序时遇到此问题吗?如果是这样,在 AfterCompile 目标中签署可执行文件应该可以解决您的问题。这对我有用。

有关此问题的更多讨论可以在这里找到:

显然,当 Phil 使用 PostBuild 或 BeforePublish 命令,当用户安装它时,他会得到可怕的 “exe 的计算哈希值与清单中指定的不同” 错误。他发现使用 AfterCompile 可以解决问题。

http://robindotnet.wordpress.com/2013/04/14/windows-8-and-clickonce-the-definitive-answer-revisited/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SignTool 未使用 SHA256 签署 ClickOnce 应用程序,仅使用 SHA1 的相关文章

随机推荐

  • 使用 THREE.Frustum 计算近/远平面顶点

    我需要一些帮助来处理 THREE Frustum 对象 我的问题 我需要计算近 远平面顶点 我已经看过这些教程 http www lighthouse3d com tutorials view frustum culling view fr
  • 使用php在谷歌云存储桶中创建文件夹

    我对谷歌云存储非常陌生 我想使用 php 编码在存储桶中创建文件夹 我搜索了很多网站 在 1 上我看到它是这样写的 在存储桶内创建文件夹将创建一个以目录命名的占位符对象 没有数据内容和 mimetype application x dire
  • 如何在 Flutter WebView 中将数据发布到 URL

    我想将一些数据发布到 Flutter WebView 中的 URL 主体 那么 我该怎么做呢 webview flutter目前没有发送帖子请求的方法 不过 你可以试试我的flutter inappwebview插入 它支持POST请求 使
  • Vue.js - 在 v-for 中使用过滤器

    我有一个简单的 Vue 过滤器 它将数组的长度限制为 n 个元素 像这样使用它效果很好 array limitArray 2 现在我想在里面使用它v for循环 像这样 li li 但这会引发错误 如何在内部使用过滤器v for 编辑 可能
  • like 子句 JPQL 中的参数

    我正在尝试使用 like 子句编写 JPQL 查询 LIKE code 我想要 code 4 并找到 455 554 646 我无法通过 code value namedQuery setParameter this value 因为在另一
  • Android studio git 使用私钥

    A 有一个 git 仓库的地址 我还有一个 open ssh 格式的私钥 Android Studio中的git可以使用吗 我尝试搜索一些信息 但目前没有运气 感谢您提供任何有用的信息 Edit My steps 1 I put my pr
  • Bing图片搜索分页-无限滚动

    当你在Bing搜索引擎上搜索图片时 结果显示如下 http www bing com images search q stack overflow 请注意 您如何不断滚动并滚动 并且没有 正常 分页 我的问题是 他们是如何做到这一点的 我可
  • 核心转储文件名使用 core_pattern %e.%p.core 获取线程名称而不是可执行文件名称

    我最近开始使用 pthread setname np 在我的应用程序中设置一些线程名称 执行此操作后 如果指定线程之一内发生崩溃 则核心转储文件名将获取线程名称 而不是 core pattern e p core 的可执行文件名称 根据核心
  • localStorage - 清除()或removeItem()?

    我应该使用clear 抹去一切localStorage 或者我应该手动removeItem 我在该特定网站上设置的那些 很容易跟踪 我这么问是因为我不想最终消灭用户localStorage如果他们设置了其他值 我正在本地主机中测试这个并注意
  • 检测编码并将所有内容设为 UTF-8

    我从各种 RSS 源中读出大量文本并将它们插入到我的数据库中 当然 提要中使用了几种不同的字符编码 例如UTF 8 和 ISO 8859 1 不幸的是 文本编码有时会出现问题 例子 Fu ball 中的 在我的数据库中应如下所示 如果是 则
  • 将 fseek 与指向 stdin 的文件指针结合使用

    根据命令行参数 我设置一个文件指针指向指定文件或标准输入 用于管道传输 然后 我将此指针传递给许多不同的函数以从文件中读取 这是获取文件指针的函数 FILE getFile int argc char argv FILE myFile NU
  • 如何使用Chef设置环境变量?

    有一个与此类似的问题 但无法使其正常工作 我想简单地设置一个环境变量 然后使用它 execute start zookeeper do cwd opt zookeeper 3 4 5 bin command zkServer sh star
  • 如何在 Bootstrap Validation 中创建自定义验证

    我的目标是验证特定的文本字段 其中该字段依赖于其他元素的值 例如 我有一个选择字段和一个输入文本字段 仅当选择标签具有选定值时才需要输入文本 希望有人能帮忙 看一眼 http bootstrapvalidator com 在我们的项目中 我
  • ValueError:错误的项目数量超过 500,放置意味着 1,Python 和 Pandas

    我只从 xlsx 文件导入两列 我想计算一些东西 平均值 偏差 百分比变化 然后我想绘制所有这些 第一部分不会给我带来任何问题 但绘图却会给我带来任何问题 我的代码如下所示 import matplotlib pyplot as plt i
  • 使用连续变量的决策树[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有一个关于使用连续变量的决策树的问题 我听说当输出变量是连续的并且输入变量是分类的时 分割标准是减少方差什么的 但我不知道如果输入变量是连续的它是如何工作的 输入变量 连续 输出变
  • 浮动小于 FLT_MIN。为什么是FLT_TRUE_MIN?

    在尝试了解浮点下溢情况下会发生什么时 我发现我可以使浮点数比 FLT MIN 小得多 我在 OS 10 9 上使用 xcode 5 1 语言方言是 gnu99 include
  • 基于权限的 WebApi 端点的上下文序列化

    我正在使用 Asp Net Web Api 我希望能够根据连接的客户端访问权限过滤掉响应对象上的某些字段 Example class Foo AccessFilter Uberlord string Wibble get set strin
  • Spring MVC - 在 JSP 视图中没有获取价值[重复]

    这个问题在这里已经有答案了 首先 我是 Spring MVC 领域的新手 我制作了一个简单的程序 其中 Spring MVC 将处理 GET 请求并设置一个名为 message 的变量 该变量应在 JSP 中显示设置值 但未按预期执行 代码
  • 如何使用 RAND(seed) 对 MySQL 中的行进行采样?

    我需要使用 MySQL 从表中获取可重复的随机行集 我使用 MySQL RAND 函数实现了这一点 并使用行的 bigint 主键作为种子 有趣的是 这产生的数字看起来根本不是随机的 谁能告诉我这里发生了什么以及如何让它正常工作 selec
  • SignTool 未使用 SHA256 签署 ClickOnce 应用程序,仅使用 SHA1

    我正在尝试签署我的 clickonce 应用程序 我有一个使用 SHA256 的 EV 代码签名证书 问题是 当我使用构建后命令签署我的应用程序时 它似乎使用 SHA1 而不是 SHA256 这是输出窗口的剪辑 Running Code A