13

OS: .NET 4.5 がインストールされた Visual Studio Pro 2012 を使用する Windows 7 64 ビット。

Visual Studio 内で [発行] オプションを使用し、[clickOnce マニフェストに署名] と [アセンブリに署名] をクリックしたことを確認しました。別のコンピューターではまだ実行されず、有効な XML 署名がないと表示されます。以下にエラーメッセージを貼り付けました。

私も読んだ: ClickOnce配置パッケージを移動する方法ClickOnceマニフェストに署名する必要がありますか? . VS2012 .NET 4.0 Clickonce VSTO CryptographicException: SignatureDescription は、提供された署名アルゴリズムと他のいくつかに対して作成できませんでした。

少なくとも .NET 4.0 にプログラムを展開できる必要がありますが、別のバージョンの Visual Studio にアクセスすることはできません。前もって感謝します!

以下の完全なエラー:


プラットフォームのバージョン情報 Windows : 5.1.2600.196608 (Win32NT) 共通言語ランタイム : 2.0.50727.3603 System.Deployment.dll : 2.0.50727.3053 (netfxsp.050727-3000) mscorwks.dll : 2.0.50727.3603 (GDR.05072) dll dll : 2.0.50727.3053 (netfxsp.050727-3000) dfshim.dll : 4.0.31106.0 (Main.031106-0000)

ソース展開 URL : file:///C:/Documents%20and%20Settings/Administrator/Desktop/EatonWizard.application

エラーの概要 以下にエラーの概要を示します。これらのエラーの詳細は、ログの後半に記載されています。* C:\Documents and Settings\Administrator\Desktop\EatonWizard.application のアクティベーションで例外が発生しました。次の失敗メッセージが検出されました: + file:///C:/Documents%20and%20Settings/Administrator/Desktop/EatonWizard.application からのマニフェストの読み取り中に例外が発生しました: マニフェストが有効でないか、ファイルを開くことができませんでした。+ マニフェスト XML 署名が無効です。+ 提供された署名アルゴリズムに対して SignatureDescription を作成できませんでした。

コンポーネント ストア トランザクション エラーの概要 トランザクション エラーは検出されませんでした。

警告 この操作中に警告はありませんでした。

運用進捗状況 * [10/10/2012 2:05:02 PM] : C:\Documents and Settings\Administrator\Desktop\EatonWizard.application のアクティベーションが開始されました。

エラーの詳細 この操作中に次のエラーが検出されました。* [10/10/2012 2:05:02 PM] System.Deployment.Application.InvalidDeploymentException (ManifestParse) - ファイルからマニフェストを読み取る例外::///C:/Documents%20and%20Settings/Administrator/Desktop/EatonWizard.application : マニフェストが有効でないか、ファイルを開けませんでした。- ソース: System.Deployment - スタック トレース: System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri) で System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState、IDownloadNotification 通知、DownloadOptions オプション、ServerInformation& serverInformation) で System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore サブストア、Uri& sourceUri、TempFile& tempFile、SubscriptionState& subState、IDownloadNotification 通知、DownloadOptions オプション) で System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri、ブール値 isShortcut、文字列 textualSubId 、文字列 deploymentProviderUrlFromExtension、BrowserSettings browserSettings、文字列 & errorPageUrl) で System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(オブジェクト状態) --- 内部例外 --- System.Deployment.Application.InvalidDeploymentException (SignatureValidation) - マニフェスト XML 署名が無効です。- ソース: システム。展開 - スタック トレース: System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s) at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri) --- 内部例外 --- システム.Security.Cryptography.CryptographicException - 提供された署名アルゴリズムに対して SignatureDescription を作成できませんでした。- ソース: System.Security - スタック トレース: System.Security.Cryptography.Xml.SignedXml.CheckSignedInfo (AsymmetricAlgorithm キー) で System.Security.Cryptography.Xml.SignedXml.CheckSignatureReturningKey (AsymmetricAlgorithm& signatureKey) で System.Deployment.Internal.CodeSigning .SignedCmiManifest.

COMPONENT STORE TRANSACTION DETAILS 取引情報はありません。

4

2 に答える 2

36

今日も同じ問題がありました。これが私が解決した方法です:

問題の原因: vs2012 とフレームワーク 4.5 を使用して clickonce プロジェクトを作成しました。次に、ターゲット フレームワークを 4.0 に変更しました (クライアントから要求されました)。

問題は、Framework 4.5 は署名に SHA-256 アルゴリズムを使用し、4.0 は SHA-1 を使用することです。ターゲット フレームワークを 4.0 に変更したとき、vs2012 はアルゴリズムを変更しませんでした。

解決策: アルゴリズムを手動で変更して、新しい証明書を生成します。

プロジェクトのプロパティに移動 -> 署名

「署名アルゴリズム」で使用されているアルゴリズムが表示されます。新しいテスト証明書を作成すると、「sha1RSA」に変わることがわかります。

于 2013-03-05T18:11:46.190 に答える
2

これをコメントとして追加したはずですが、ばかげた評判ルールのため、回答しか追加できません!


新しいコード署名証明書に注意してください

コード署名証明書を更新する必要があったため、最近この問題が発生しました。そのため、Microsoft が XP バージョンの Framework 4 に ClickOnce の展開中に SHA2 証明書を使用するためのパッチを適用していないという事実を知らずに、私はすべての clickonce プロジェクトに新しいコード署名証明書を使用するように指示しました。

Microsoft に処理させるだけでなく、コードベースのアプリの更新も行っているため、ボタンを押す必要がなく、私のアプリのスタイルで、エンド ユーザーにとってよりシームレスなエクスペリエンスになります。

しかし、プログラムがマニフェスト エラーを報告せず、代わりにハングするというバグに遭遇しました (悪いことです!)。この問題を発見するために午前 3 時まで作業した後、更新プログラムを入手するために、Visual Studio によって発行された一時的な証明書を作成する必要がありました。そこの問題?発行元が不明なため、マイクロソフトが愚かなダイアログを表示したため、コードの更新はシームレスではなくなりました。

したがって、私の最大の懸念は、はい、OK、XP はおそらく月曜日からサポートされていないということですが、フレームワーク 4 が新しい証明書を受け入れるべきではないという意味ではありません。マイクロソフトは、その推進に積極的に関与しています。

唯一有効な答えは上記のとおりです。Visual Studio を使用して、信頼できない一時的な証明書を作成する必要がありますが、これはばかげています!!! (新しい証明書を使用する正しい方法が見つからなかった可能性があるという希望がまだあります)

于 2014-04-03T12:41:46.583 に答える