奇怪的是,当我删除" file:///"从我在注册表中的清单URL工作正常,这是在.NET 4.0上。名称:发件人: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()
这个问题在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,则问题应该持续存在。