【发布时间】:2013-08-09 02:34:35
【问题描述】:
我不确定他们为什么不能简化签名代码的过程。似乎每次发布都需要一天或更长时间才能弄清楚。我们使用 Verisign 并拥有当前的 pfx 文件。
我有一个以管理员身份运行的应用程序,因此我需要对应用程序和安装程序都进行签名。几个月前我设法完成了一次,并发布了。在这个版本中,我决定简化流程,并设置 Visual Studios 自动签署所需文件,使用 Properties -> Signing 为每个项目。然后我运行我的脚本,同时将安装程序构建为 PostBuildEvent 以对其进行签名。
我认为一切都很顺利,因为安装人员提供了公司名称。但是,当我运行应用程序时,UAC 中显示“未知”。我决定回到我之前做的方式,构建,签署文件,构建安装程序,最后签署它。这在三个月前有效,但现在我仍然在 UAC 弹出窗口中收到“未知”问题。
我没有向解决方案添加任何新类,因此我的签名脚本应该仍然有效。我无法弄清楚我可能做错了什么。是否有任何关于如何使用 Verisign 签名的良好文档或应遵循的简单规则?似乎在构建后对所有 .exe 和 .dll 文件调用 signtool.exe sign /f "Verisign.2012.pfx" /p myPassword "C:\...\Installer.msi",然后创建安装程序并在 .exe 和 .msi 文件上调用相同的文件应该确保所有内容都已签名,我不应该看到“未知。 "
有没有比我更有经验的人(我相信有很多人)可以看到我理解中的巨大漏洞,并让我走上正确的道路?谢谢。
【问题讨论】:
-
旁注:您能否澄清一下“为什么他们不能……”中的“他们”是谁?到目前为止,您的问题是“过去几个月绝对没有任何变化,但现在构建脚本失败” - 您可能从问题中省略了一些配置/环境/脚本......
-
对方法进行了更改,但没有添加新项目。我的笔记显示我有第二个脚本调用签名脚本,但这不再在签名系统上。除了调用签名脚本之外,我不记得它是否做了任何其他事情。签约时还有什么需要做的吗?
-
您是否设置了程序集信息。签名代码的过程并不难,过程也没有改变,看起来这是用户错误。我们需要有关脚本的更多信息。你似乎不太“记得”。
-
@Ramhound,我意识到这是由用户错误引起的。不幸的是,我无法确定该错误可能是什么,这就是我将这个问题发布到社区的原因。我没有接受过签名方面的培训,而且我能够找到的文档似乎把我引向了错误的方向。如果您碰巧知道一个可以指导我完成整个过程的好地方,我会很喜欢这些信息。
-
@Tim: AFAIK——也许我所说的仅对 ClickOnce 应用程序有效——无论您签署 manifest 还是 程序集(DLL/EXE)。使用 ClickOnce,签署清单就足以摆脱“未知来源”警告。签署程序集根本不会影响该警告。