VS2012 .NET 4.0 Clickonce VSTO CryptographicException:无法为提供的签名算法创建SignatureDescription

Lee*_*som 6 .net clickonce visual-studio-2010 c#-4.0 visual-studio-2012

我有一个VS2010 .NET 4.0 VSTO Outlook Addin项目,我希望迁移到VS2012(但保留在.NET 4.0中).它编译得很好,并且从IDE内部运行就好了,但是当我尝试运行已发布的ClickOnce安装程序时,我得到以下异常:

System.Deployment.Application.InvalidDeploymentException:从file://MyPath/MyAddIn.vsto读取清单的异常:清单可能无效或无法打开文件.---> System.Deployment.Application.InvalidDeploymentException:Manifest XML签名无效.---> System.Security.Cryptography.CryptographicException:无法为提供的签名算法创建SignatureDescription.

基于我的测试和在线研究(在这里那里),似乎只在我的机器上安装了VS2012(无论是从VS2010还是VS2012发布),强制ClickOnce安装程序在使用.NET 4.0时需要 SHA1证书.使用VS2010(安装VS2012)编译时,我现有的SHA256证书与.NET 4.0完全兼容.

  • 我无法将客户端升级到.NET 4.5,因为这是一个VSTO40项目(在XP/Office 2007上运行).
  • 我无法在本地计算机上卸载VS2012/.NET 4.5,因为我还有其他需要它的项目.
  • 我无法轻易地将我的证书从SHA256降级为SHA1.

还有其他建议让我继续前进吗?

小智 10

我有完全相同的错误消息,并使用VS 2013,.NET 4.5,并使用SHA256正确签名所有内容.

最后,我发现安装了旧版本的VSTO 2010 Runtime(10.0.40303).一旦我们将其更新到10.0.40820,一切正常.真的希望这可以帮助别人,几天来试图弄清楚发生了什么,这让我绝对疯狂.

  • 注意:今天发布了更新版本的VSTO Runtime,它解决了您可能在SHA256证书中看到的"未知发布者"问题.http://blogs.msdn.com/b/vsto/archive/2014/04/10/vsto-runtime-update-to-address-slow-shutdown-and-unknown-publisher-for-sha256-certificates.aspx (2认同)

Lee*_*som 2

我通过创建一个新证书来解决我的问题,该证书用于签署 ClickOnce 清单并使用 SHA1 算法生成它。您可以在此处查看对话:http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/eba424ae-f7b7-4530-bb68-db3b9972a31e

2014 年 8 月 5 日编辑:
Visual Studio 2013 Update 3 终于解决了这个问题。
http://support.microsoft.com/kb/2933779
已修复问题 -> 常规

即使对于面向 .NET Framework 4.0 或更早版本的应用程序,您也可以使用 SHA 256 代码签名证书。在此更新之前,当 SHA 256 代码签名证书用于通过 ClickOnce 或 Visual Studio Tools for Office 加载项发布的桌面应用程序时,客户端计算机上必须存在 .NET Framework 4.5。如果您过去使用过 SHA 256 代码签名证书,并且看到过诸如“应用程序格式不正确”、“清单可能无效”、“清单 XML 签名无效”或“ SignatureDescription 可能无效”等错误不是为提供的签名算法创建的”,此更新解决了重新发布和新发布的应用程序的问题。