异常阅读清单

时间:2015-10-12 12:09:05

标签: .net c#-4.0 manifest

我有一个奇怪的问题。我最近将证书更改为SHA256,目标框架是.NET 4.0,没有其他更改,加载我的VSTO加载项时出现以下错误。

  

名称:发件人:file:/// C:/ Program Files(x86)/SomeAddin.vsto

     

**************异常文本************** System.Deployment.Application.InvalidDeploymentException:异常   从中读取清单   file:/// C:/ Program%20Files%20(x86)/SomeAddin.vsto:清单可能   无效或无法打开文件。 --->   System.Deployment.Application.InvalidDeploymentException:Manifest XML   签名无效。 --->   System.Security.Cryptography.CryptographicException:   无法为签名算法创建SignatureDescription   提供。在   System.Security.Cryptography.Xml.SignedXml.CheckSignedInfo(AsymmetricAlgorithm   关键)at   System.Security.Cryptography.Xml.SignedXml.CheckSignature(AsymmetricAlgorithm   关键)at   System.Security.Cryptography.Xml.SignedXml.CheckSignatureReturningKey(AsymmetricAlgorithm&安培;   签约钥匙   System.Deployment.Internal.CodeSigning.SignedCmiManifest.Verify(CmiManifestVerifyFlags   verifyFlags)at   System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(流   s)---内部异常堆栈跟踪结束--- at   System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(流   s)at   System.Deployment.Application.ManifestReader.FromDocument(字符串   localPath,ManifestType manifestType,Uri sourceUri)---结尾   内部异常堆栈跟踪--- at   Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.GetManifests(时间跨度   超时)at   Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()

奇怪的是,当我删除" file:///"从我在注册表中的清单URL工作正常,这是在.NET 4.0上。

这个问题在4.5框架上也没有出现,有" file:///",有什么想法吗?

<OutputType>Library</OutputType>
    <NoStandardLibraries>false</NoStandardLibraries>
    <RootNamespace>Some.Addin</RootNamespace>
    <AssemblyName>Some.Addin</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <ManifestCertificateThumbprint>{somethumbprint}</ManifestCertificateThumbprint>
    <ManifestKeyFile>
    </ManifestKeyFile>
    <SignManifests>true</SignManifests>
    <SignAssembly>true</SignAssembly>
    <AssemblyOriginatorKeyFile>Somefile.snk</AssemblyOriginatorKeyFile>
    <DelaySign>false</DelaySign>

这与“Manifest XML signature is not valid” on client machine but works fine on developer computer不同,因为删除&#34; file:///&#34;从清单文件中修复问题。如果涉及.NET 4.5,则问题应该持续存在。

0 个答案:

没有答案