トップ回答者
ClickOnceアプリケーションの起動・更新・アンインストールが不能になる現象について

質問
-
お世話になります。
ClickOnceで作成したアプリケーションをユーザに提供しているのですが、
ごくまれに突然アプリケーションの起動・更新・アンインストールといった
全てのオペレーションが不可能になる現象が発生します。
問題のアプリケーションは、- Visual Studio 2005 Standard Edition / C#.NET で作成
- ClickOnceを使用して発行した物をWebサーバ上に配置
- ユーザはWebサーバからインストールをして更新も自動的にWebサーバから行う
- 2006年7月ごろから提供されている
- 利用ユーザ数は約1000人
- ClickOnceの更新機能によってアプリケーションのバージョンアップ回数は既に2桁(10回以上)
といった物です。
今回発生したパターンとしては、
- ユーザが普通にアプリケーションを使用する。
- アプリケーションの新しいバージョンがリリースされ、Webサーバに配置される。
- その後ユーザがもう一度アプリケーションを起動しようとすると、
通常の場合は「新しいバージョンがリリースされています。更新しますか?」といった、
ClickOnceの更新案内のダイアログが表示されるのですが、
今回の場合は、「エラーが発生しました。Microsoftに報告しますか。」というような
.NETのエラーダイアログが出てきます。
エラー署名も表示されるので一応以下に記載します。
エラー署名
EventType:clr20r3 P1:(アプリケーションのexeファイル名) P2:(アプリケーションのバージョン)
P3:44bf9bb2 P4:(アプリケーションの名前) P4:(アプリケーションのバージョン) P6:44bf9bb2
P7:f9c P8:12d P9:pszqoadhx1u5zahbhohghldgiy4qixhx - 起動できなくなったので、アンインストールをしようと「プログラムの追加と削除」から、
アプリケーションの「変更と削除」ボタンを押すと、
「アプリケーションを起動できません。アプリケーションのベンダに問い合わせてください。」という、
エラーダイアログが表示されてしまい、アンインストールする事ができませんでした。
表示されたエラーダイアログの「詳細」ボタンを押すと、エラーの詳細が表示されますが、
内容的には
* (アプリケーション配置URL).application のライセンス認証により例外が発生しました。
次の失敗メッセージが検出されました:
+ 参照されたアセンブリはシステムにインストールされていません。
(HRESULT からの例外: 0x800736B3)
とあり、アセンブリがインストールされていないというのが分かります。 - そこで、アセンブリを追加インストールしようとWebサーバに配置してある
.application ファイルを参照すると、
やはり同じ「アプリケーションを起動できません。アプリケーションのベンダに問い合わせてください。」
というエラーが出てしまい更新する事ができませんでした。
なお、問題が発生したユーザの環境は、
- Windows XP SP2
- .NET Framework 2.0 ランタイム
- 2006/09/26現在提供されている全てのセキュリティパッチ適用済み
となっています。
実は、同様の問題が以前にも1度違うユーザで発生しましたが、
その際にはOSごと再インストールするという荒療治で解決しました。今後もこのアプリケーションは更新されますし、
ユーザ数も増加する方向に向かっているため、
毎回OSごと再インストールというソリューションを適用する事は困難だと考えています。
ですので、この状況を打開する策としてOS再インストール以外の何らかの方法、
あるいは、手動でClickOnceのインストール情報を全て消去する方法などを
ご存知の方がいらっしゃいましたらご教授願えませんでしょうか。よろしくお願いいたします。