現在オフラインです。再接続するためにインターネットの接続を待っています

.NET Framework 4.5 の ClickOnce アプリケーションではプログラムからの更新に失敗する場合があります

現象
.NET Framework 4.5 の ClickOnce アプリケーションで、以下のシナリオを考えます。

 - ClickOnce アプリケーションを初回インストールで「更新の場所」と異なる場所からインストールします
 - 次バージョンを「更新の場所」に指定のネットワークフォルダ等に発行します
 - 発行時には更新を確認する設定を無効とし、実際の更新はアプリケーション内で ApplicationDeployment クラスを使用して行います

上記の手順では、次バージョンへの更新時に以下の例外が発生し、更新に失敗します。

  System.Deployment.Application.TrustNotGrantedException: ユーザーは必要なアクセス許可をアプリケーションに与えることを拒否しました。

上記のようなインストールおよび更新の方法は、プロキシー サーバーの認証の制限やネットワーク構成等に関連する問題で、自動更新が実行できない構成の場合に採用されるシナリオが考えられます。

プログラム経由での更新方法として具体的に使用されるメソッドとしては、System.Deployment.Application.ApplicationDeployment クラスの Update() メソッドや CheckForUpdate() メソッド等があります。
原因
 .NET Framework 4.5 からはプログラムからの更新について、セキュリティ強化の目的で認証がより厳格になっており、上記に記載のように、前回バージョンのインストール場所と異なる場所からの更新を許可しなくなりました。
.NET Framework 4 ではこの方法で更新が可能です。

自動的に更新を確認する設定の場合は、更新時にダイアログが表示され、ユーザーが異なる配置場所からの更新を明示的に許諾できるため、上記構成でも更新が可能です。
プログラムからの更新の場合は、ユーザーが異なる配置場所からの更新を許可するかを確認できないため、プログラムからの更新処理が悪意ある第三のアプリケーションに流用される懸念があることから、.NET Framework 4.5 での機能強化を行っています。
解決方法
以下のいずれかの方法を使用することで、.NET Framework 4.5 においても更新が適切に行われます。

- 自動的に更新を確認する設定を有効にします (構成上採用可能な場合)
- 初回のインストール場所も更新の確認場所と同じ場所を利用します

上記のいずれも採用が難しい場合は、プログラムからの更新で上記例外が発生した場合に、該当例外をプログラム内で捕捉し、プログラムの動作要件に応じて個別の対処を実施します
状況
本動作は .NET Framework 4.5 のセキュリティ強化による仕様です。
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2879063 - 最終更新日: 09/20/2016 10:35:00 - リビジョン: 2.0

Microsoft .NET Framework 4.5

  • KB2879063
フィードバック