6

私はそれが非常に一般的に直面する問題であることを知っています。ただし、わずかな違いがあります。私の WPF は完全にインストールされ、Windows 7 および Windows 8 OS で実行されます。ただし、Windows XP を実行している VM にインストールしようとすると、次のエラーが発生します。

続行できません。アプリケーションの形式が正しくありません。詳細

プラットフォームのバージョン情報

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)

コンポーネントストア取引詳細

取引情報はありません。

  • 有効なキーでアプリケーションに再署名しました
  • 複数の PC にインストールしましたが、インストールして正常に動作します。

このエラーの考えられる原因を列挙してください。

4

9 に答える 9

5

マニフェストの署名を削除することで問題を解決できました。
プロジェクトを右クリックしてプロパティに移動すると、署名タブに移動します。Sign the ClickOnce manifestsSign the assemblyのチェックを外します。
これがセキュリティの観点から何をするのかはわかりませんが、これらのオプションを削除した後にアプリがインストールされました。

于 2013-09-04T16:19:27.773 に答える
0

Windows XP マシンに SP-3 がインストールされており、利用可能なすべての Windows Update が適用されていますか? Microsoft は、証明書に関するコードの更新、信頼できる発行元、およびその他の関連情報を定期的にプッシュしています。

于 2013-04-07T00:31:25.927 に答える
0

これは、開発者のマシンには .NET 4.5 がインストールされていたのに対し、クライアントのマシンには .NET 4.0 しかインストールされていなかったためです。.NET 4.0 クライアント マシンは SHA-1 を想定しているためマニフェストを読み取ることができませんが、.NET 4.5 開発者マシンは可能です。

于 2016-06-28T11:23:33.827 に答える
0

特定の WINdows OS が、暗号プロバイダーが見つからないために証明書ハッシュの結果を「理解」または検証できないという同様の問題を見たことがあります。クリックワンス署名。

指定された署名アルゴリズムの SignatureDescription を作成できませんでした

メッセージの強調表示された部分と、WinXP マシンで失敗する前に複数のマシンへのインストールが成功したことは、同様の問題が発生していることを示しています。WinXP は、使用した証明書で指定された暗号化アルゴリズムを認識していません。クリックワンスに署名します。

これに対する適切な解決策はわかりません。インターネットで見つけられる通常のアドバイスは、v3 テンプレートの代わりに v2 テンプレートを使用して X509 を生成することですが、これは必ずしも良い解決策ではなく、X509 の機能を超えています。ほとんどの組織 (特に、ほとんどの人は、独自の認証局から生成された証明書ではなく、購入した証明書を使用しているため)。

于 2013-04-03T09:02:41.327 に答える
-1

Visual Studio 2012 でビルドされ、すべての重要な更新プログラム (SP3 がインストールされ、Windows インストーラー 4.5) を備えた XP マシンにデプロイされた WinForms アプリでも同じ問題が発生しました。私も、プロジェクトの [プロパティ] ページの [署名] タブに移動して、アプリケーションを署名なしに変更する必要がありました。[Click One マニフェストに署名する] と [アセンブリに署名する] の両方のチェックを外しました。同じアプリケーションが、署名が有効になっている Windows 7 マシンに正常にインストールされました。

于 2013-09-20T17:06:47.473 に答える