首页 文章

使用Visual Studio 2008签署程序集时出错'Object already exists'

提问于
浏览
1

我遇到了几个地方描述的相同问题,包括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 回答

  • 2

    我仍然无法使用IDE选项,但这对我有用并且不是太糟糕:

    • 在IDE中启用“签署ClickOnce清单”并选择“从商店”(从PFX文件中选择产生相同的“对象已存在”错误) .

    • 不要选中“签署组件” .

    • 添加要运行的后期构建事件:

    c:\signtool.exe sign /f c:\cert.pfx /p password /t http://tsa.starfieldtech.com c:\project\obj\debug\myapp.exe
    

    因此基本上使用signtool.exe进行签名是诀窍,但是清单需要签名(我让IDE做),另一个非显而易见的部分是你需要从OBJ文件夹中签署EXE文件,而不是BIN文件夹 .

    我认为这比IDE更好,因为我认为你必须每次都输入密码 . 这样,密码就在post build事件命令行中 .

相关问题