清单可能无效或无法为某些PC用户打开文件,但对其他用户可以正常工作

时间:2016-09-14 07:06:19

标签: outlook vsto manifest add-in signing

Outlook 2007 VSTO插件在启动时加载时发生错误。此Windows 7 PC由多个域用户使用。该错误仅发生在某些用户身上。对于其他用户,插件工作正常。我认为不幸的用户没有一些权限,但不确定在哪里查看。

如果您在过去遇到同样的错误,请提供帮助。谢谢。

错误详情如下

System.Deployment.Application.InvalidDeploymentException: Exception reading manifest from file:///C:/Program%20Files%20(x86)/<Application folder>/My_OutlookAddin.vsto: the manifest may not be valid or the file could not be opened. ---> System.Deployment.Application.InvalidDeploymentException: Manifest XML signature is not valid. ---> System.Security.Cryptography.CryptographicException: SignatureDescription could not be created for the signature algorithm supplied.

at System.Security.Cryptography.Xml.SignedXml.CheckSignedInfo(AsymmetricAlgorithm key)    在System.Security.Cryptography.Xml.SignedXml.CheckSignatureReturningKey(AsymmetricAlgorithm&amp; signingKey)    在System.Deployment.Internal.CodeSigning.SignedCmiManifest.Verify(CmiManifestVerifyFlags verifyFlags)    在System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s)    ---内部异常堆栈跟踪结束---    在System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s)    在System.Deployment.Application.ManifestReader.FromDocument(String localPath,ManifestType manifestType,Uri sourceUri)    ---内部异常堆栈跟踪结束---    在Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.GetManifests(TimeSpan超时)    在Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()

2 个答案:

答案 0 :(得分:1)

谢谢你们的反馈意见。我已经解决了这个难题。首先,您的问题的答案如下。使用在VS 2010安装项目中创建的setup.exe安装加载项,即它不是ClickOnce安装。 Visual Studio Tools for Office应用程序安装在目标PC上,也是安装项目的先决条件之一。我认为问题是由加载项目的签名证书和强名称密钥(snk)文件引起的。证书是由开发人员发布的临时证书。 snk文件是使用此临时证书创建的。我假设生成的加载项清单仅适用于某些域组用户。我没想到这一点。我所做的是将临时证书替换为公司最近购买的新证书,并创建了一个新的snk文件。但是,部署后,加载项已停止为所有用户工作。错误消息是相同的。那时我开始研究加载项清单文件。我发现使用新证书创建的清单文件具有SHA2加密算法。但是,VS 2010只能处理早期的SHA1版本,因为它可以定位的最高框架版本是FW 4. SHA2只能用于FW 4.5及更高版本。解决方案是使用三年前的SHA1证书和snk文件,这些证书是2013年上次更新加载项时使用的。我在公司源代码存储库中找到了它们。即使证书在去年到期,加载项清单仍然有效。顺便说一句,SHA1加密算法从2016年1月开始被弃用。现在,所有用于签名应用程序的新证书都是使用SHA2等其他算法发布的。

答案 1 :(得分:0)

安装了Visual Studio Tools for Office(VSTO)的用户是否正在使用?

见:

Outlook Add-ins installation