2013-04-03 40 views
4

我知道這是一個非常普遍面臨的問題。但是,有一點區別,我的WPF安裝完美,可以在Windows 7和Windows 8操作系統上運行。但是,當試圖在運行Windows XP的虛擬機上安裝時,會出現以下錯誤:Manifest可能無效或文件無法打開。

無法繼續。該應用程序格式不正確。 詳細

平臺版本信息

Windows    : 5.1.2600.196608 (Win32NT) 
    Common Language Runtime  : 4.0.30319.1 
    System.Deployment.dll  : 4.0.30319.1 (RTMRel.030319-0100) 
    clr.dll    : 4.0.30319.1 (RTMRel.030319-0100) 
    dfdll.dll   : 4.0.30319.1 (RTMRel.030319-0100) 
    dfshim.dll   : 4.0.31106.0 (Main.031106-0000) 

SOURCES 
    Deployment url   : file:///S:/K3FrontEnd_NET4/Karacell3.application 

錯誤摘要

以下是錯誤的摘要,這些錯誤的詳細信息稍後在日誌中列出。

* Activation of S:\K3FrontEnd_NET4\Karacell3.application resulted in exception. Following failure messages were detected: 
     + Exception reading manifest from file:///S:/K3FrontEnd_NET4/Karacell3.application: the manifest may not be valid or the file could not be opened. 
     + Manifest XML signature is not valid. 
     + SignatureDescription could not be created for the signature algorithm supplied. 

COMPONENT STORE TRANSACTION FAILURE SUMMARY 
    No transaction error was detected. 

WARNINGS 
    There were no warnings during this operation. 

OPERATION PROGRESS STATUS 
    * [4/3/2013 2:58:13 PM] : Activation of S:\K3FrontEnd_NET4\Karacell3.application has started. 

ERROR DETAILS 
    Following errors were detected during this operation. 
    * [4/3/2013 2:58:14 PM] System.Deployment.Application.InvalidDeploymentException (ManifestParse) 
     - Exception reading manifest from file:///S:/K3FrontEnd_NET4/Karacell3.application: the manifest may not be valid or the file could not be opened. 
     - Source: System.Deployment 
     - Stack trace: 
      at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri) 
      at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation) 
      at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options) 
      at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl) 
      at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) 
     --- Inner Exception --- 
     System.Deployment.Application.InvalidDeploymentException (SignatureValidation) 
     - Manifest XML signature is not valid. 
     - Source: System.Deployment 
     - Stack trace: 
      at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s) 
      at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri) 
     --- Inner Exception --- 
     System.Security.Cryptography.CryptographicException 
     - SignatureDescription could not be created for the signature algorithm supplied. 
     - Source: System.Security 
     - Stack trace: 
      at System.Security.Cryptography.Xml.SignedXml.CheckSignedInfo(AsymmetricAlgorithm key) 
      at System.Security.Cryptography.Xml.SignedXml.CheckSignature(AsymmetricAlgorithm key) 
      at System.Security.Cryptography.Xml.SignedXml.CheckSignatureReturningKey(AsymmetricAlgorithm& signingKey) 
      at System.Deployment.Internal.CodeSigning.SignedCmiManifest.Verify(CmiManifestVerifyFlags verifyFlags) 
      at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s) 

組件存儲事務詳細

沒有交易資料。

  • 我有一個有效的密鑰
  • 我已經安裝了多臺電腦上重新簽訂了應用程序並將其安裝並正常工作。

請幫我列舉這個錯誤的可能原因。

回答

0

在我的特殊情況下,由於缺少加密提供程序,特定WIndows操作系統無法「理解」或驗證證書哈希的結果之前,我看到過類似的問題,這與使用生成的X509證書有關clickonce簽名的v3模板。

SignatureDescription could not be created for the signature algorithm supplied

沒有WinXP的機器上會表明您也遇到了類似的問題之前,有幾臺機器上安裝成功合併消息的高亮部分 - WinXP的不知道該密碼algorithmn規定您用來簽署clickonce的證書。

我不知道一個很好的解決方案,你會發現在互聯網上的正常建議是使用V2模板來生成X509而不是V3模板,但這不一定是一個好的解決方案,是超出了大多數組織的能力(特別是大多數人使用購買的證書而不是從他們自己的證書頒發機構生成的證書)。

0

您是否在Windows XP計算機上安裝了SP-3以及所有可用的Windows更新?微軟週期性推出更新周圍證書的代碼以及受信任的發佈者和其他相關信息。

2

我有同樣的問題,它只是機器沒有適當的.Net版本。

3

我能夠通過刪除清單的簽名來解決我的問題。
如果右鍵單擊項目並轉至屬性,然後至簽名選項卡;取消選中簽署ClickOnce清單簽署大會
我不知道這是什麼一樣在安全性方面,但之後我刪除這些選項來安裝我的應用程序。

+1

奇怪的是,當我不勾選此框,然後按F7重建項目,盒子奇蹟般地再次變爲打勾。我不能「保持」它沒有挑戰! –

+0

如果你不簽字每個人都安裝它必須要經過多個對話窗口上的堅持,他們信任你。您可以在內部應用程序中使用它,但不能在客戶安裝的應用程序中使用。 – user3141326

-1

我曾經對自己用的Visual Studio 2012構建和部署XP的機器上的所有關鍵更新(安裝SP3和Windows安裝程序4.5)WinForms應用程序相同的問題。我也必須通過轉到我的項目的「屬性」頁面上的[簽名]選項卡來將我的應用程序更改爲未簽名。我未選中兩種: [簽署點擊一個清單]和[登錄大會。在啓用簽名的情況下,Windows 7計算機上安裝的應用程序也相同。

+3

-1表示重複答案 – kad81

0

這是因爲你的開發機器有.NET 4.5安裝,而您的客戶機只有.NET 4.0安裝。 .NET 4.0客戶機無法讀取清單,因爲他們期望SHA-1,而.NET 4.5開發人員可以。