【问题标题】:The manifest may not be valid or the file could not be opened for some of the PC users but works fine for others清单可能无效或文件无法为某些 PC 用户打开,但对其他人可以正常工作
【发布时间】:2016-09-17 05:28:38
【问题描述】:

在启动时加载 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.

在 System.Security.Cryptography.Xml.SignedXml.CheckSignedInfo(非对称算法密钥) 在 System.Security.Cryptography.Xml.SignedXml.CheckSignatureReturningKey(非对称算法和签名密钥) 在 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(字符串 localPath,ManifestType manifestType,Uri sourceUri) --- 内部异常堆栈跟踪结束 --- 在 Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.GetManifests(时间跨度超时) 在 Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()

【问题讨论】:

  • 插件是如何安装的?是由 ClickOnce 还是 MSI 提供的?如果是 MSI,它是否安装在机器级别(即所有用户)?
  • 谢谢你们的反馈。我已经解决了这个难题。但不完全是。

标签: outlook vsto manifest add-in signing


【解决方案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 和更高版本一起使用。解决方案是使用 2013 年上次更新插件时使用的三年前的 SHA1 证书和 snk 文件。我在公司源代码存储库中找到了它们。即使证书去年过期,加载项清单仍然有效。顺便说一句,SHA1 加密算法从 2016 年 1 月起已弃用。如今,所有用于签名应用的新证书都使用 SHA2 等其他算法颁发。

【讨论】:

    【解决方案2】:

    不适用的用户是否安装了 Visual Studio Tools for Office (VSTO)?

    看这个:

    Outlook Add-ins installation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-03
      相关资源
      最近更新 更多