使用Verisign签署.Net代码

时间:2012-10-19 16:15:31

标签: c# verisign

我不确定为什么他们无法简化签名代码的过程。似乎每次发布时都需要一天或更长的时间才能搞清楚。我们使用Verisign并拥有一个当前的pfx文件。

我有一个以管理员身份运行的应用程序,因此我需要同时签署应用程序和安装程序。几个月前我成功完成了这项工作,然后发布了。这个版本,我决定简化流程,并设置Visual Studios自动签署所需的文件,使用Properties - >签署每个项目。然后我运行我的脚本,同时将安装程序构建为PostBuildEvent以对其进行签名。

我认为一切都很顺利,因为安装人员给出了公司名称。但是,当我运行应用程序时,UAC中显示“未知”。我决定回到之前的方式,构建,签署文件,构建安装程序,最后签名。这已经在三个月前发挥作用,但现在我仍然在UAC弹出窗口中出现“未知”问题。

我没有在解决方案中添加任何新类,因此我的签名脚本应该仍然有效。我无法弄清楚我可能做错了什么。是否有关于如何使用Verisign签署的简单文档或应遵循的简单规则?在构建之后,似乎在所有.exe和.dll文件上调用signtool.exe sign /f "Verisign.2012.pfx" /p myPassword "C:\...\Installer.msi",然后创建安装程序并在.exe和.msi文件上调用相同内容应该确保所有内容都已签名,我不应该看到“未知。”

那里有没有比我更有经验的人(我肯定有几个)可能会在我的理解中看到一个巨大的漏洞,让我走上正确的道路?谢谢。

1 个答案:

答案 0 :(得分:0)

我确定了我做错了什么。我正在构建项目然后签名。之后,我正在构建安装程序并对其进行签名。但是,通过一些测试,我发现构建安装程序正在从我的文件中剥离数字签名。

在VS项目上使用VeriSign进行签名的正确方法不是创建使用项目输出的安装程序。而是手动选择文件并将其添加到安装程序。之后,您需要添加一个后期构建事件(属性 - >构建事件 - >构建后事件命令行),用于对每个项目输出进行签名。

感谢那些提出解决方案的人。