【问题标题】:In Visual Studio, can I disable signing my application when in debug?在 Visual Studio 中,我可以在调试时禁用签名我的应用程序吗?
【发布时间】:2009-05-20 19:02:49
【问题描述】:

在 Visual Studio 的项目属性 -> 签名选项卡中,我已使用代码签名证书对我的项目进行了签名。然而,在我的团队中,我是唯一拥有代码签名证书的人,即使我们处于多开发人员环境中。当其他开发人员尝试“开始调试”时,他们会收到以下消息:

“找不到与项目系统指纹匹配的证书”

任何人有任何建议允许他们调试他们的项目,但只允许我发布?

【问题讨论】:

    标签: .net visual-studio-2008 clickonce vsto


    【解决方案1】:

    可能有用的一件事是添加一个构建后事件来调用执行您签名的脚本。您可以在发布文件时使用signtool.exe 之类的方式对文件进行签名。

    您可以制作多个版本的脚本文件,例如:Debug_sign.bat、Release_sign.bat

    然后在您的构建后事件命令行中:
    调用“$(ProjectDir)$(ConfigurationName)_sign.bat”
    将根据您的目标调用正确的脚本。

    只有发布脚本才会真正签署输出文件。调试脚本文件什么都做不了..

    我使用 signtool 对带有 .pfx 的程序集进行签名,如下所示:
    signtool.exe 签名 /f "codesign_cert.pfx" /p "cert_password" /d "应用描述" /du "http://mywebsite" myApp.exe

    【讨论】:

    • 知道我可以为 Excel 工作簿 VSTO 项目使用什么 signtool.exe 语法吗?
    • 我正在研究一些细节,但这正是我们所需要的。谢谢!
    • 我认为这取决于您的部署方式。如果您使用的是 ClickOnce,我相信您需要对清单进行签名(我尚未使用此方法进行部署)。过去,我创建了 Outlook VSTO 项目并使用 msi 安装程序进行了部署 - 我使用 signtool 对 setup.exe、msi 进行了签名,但仅使用 VS 内置签名对我的加载项 dll 进行了签名。
    【解决方案2】:

    delayed signing 会为您解决问题吗?

    【讨论】:

    • 令人惊讶的是,没有。 “当延迟签署时,项目将无法运行或可调试。”这可能仅适用于 VSTO 项目。
    • 不可能这仍然与 OP 相关,但对于后代而言,来自 social.msdn:延迟签名可以工作,如果..“已为那些部分签名的程序集启用强名称验证跳过”。跨度>
    猜你喜欢
    • 2018-12-10
    • 2013-05-12
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多