我遇到了几个地方描述的相同问题,包括Stack Overflow问题Visual Studio reporting error "PFX - Error Importing Key / Object already exists" .
大多数人在Windows Vista和Windows 7上遇到问题,但在我的情况下,我在Windows XP上作为管理用户运行 . 我已经尝试了我找到的所有解决方案,到目前为止还没有任何解决方案 . 由于我发现的大部分信息都是几年之久:是否有一些更好/最新的信息,也许还有一个更常用的修复方法?
我的代码签名证书来自Go Daddy,它适用于SignTool.exe实用程序 . 我使用SignTool.exe签署了许多在Visual Studio之外构建的EXE文件,它们都正确验证 .
我尝试使用SignTool.exe以这种方式为我当前的项目签署我的EXE文件,但似乎有一些与ClickOnce发布相关的额外问题我试图用于此项目...哈希不匹配,并且ClickOnce仍然报告为"publisher unknown",即使EXE文件已签名 .
1 回答
我仍然无法使用IDE选项,但这对我有用并且不是太糟糕:
在IDE中启用“签署ClickOnce清单”并选择“从商店”(从PFX文件中选择产生相同的“对象已存在”错误) .
不要选中“签署组件” .
添加要运行的后期构建事件:
因此基本上使用signtool.exe进行签名是诀窍,但是清单需要签名(我让IDE做),另一个非显而易见的部分是你需要从OBJ文件夹中签署EXE文件,而不是BIN文件夹 .
我认为这比IDE更好,因为我认为你必须每次都输入密码 . 这样,密码就在post build事件命令行中 .