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

  • 質問

  • お世話になります。

    ClickOnceで作成したアプリケーションをユーザに提供しているのですが、
    ごくまれに突然アプリケーションの起動・更新・アンインストールといった
    全てのオペレーションが不可能になる現象が発生します。

    問題のアプリケーションは、

    • Visual Studio 2005 Standard Edition / C#.NET で作成
    • ClickOnceを使用して発行した物をWebサーバ上に配置
    • ユーザはWebサーバからインストールをして更新も自動的にWebサーバから行う
    • 2006年7月ごろから提供されている
    • 利用ユーザ数は約1000人
    • ClickOnceの更新機能によってアプリケーションのバージョンアップ回数は既に2桁(10回以上)

    といった物です。

    今回発生したパターンとしては、

    1. ユーザが普通にアプリケーションを使用する。
    2. アプリケーションの新しいバージョンがリリースされ、Webサーバに配置される。
    3. その後ユーザがもう一度アプリケーションを起動しようとすると、
      通常の場合は「新しいバージョンがリリースされています。更新しますか?」といった、
      ClickOnceの更新案内のダイアログが表示されるのですが、
      今回の場合は、「エラーが発生しました。Microsoftに報告しますか。」というような
      .NETのエラーダイアログが出てきます。
      エラー署名も表示されるので一応以下に記載します。

      エラー署名
      EventType:clr20r3 P1:(アプリケーションのexeファイル名) P2:(アプリケーションのバージョン)
      P3:44bf9bb2 P4:(アプリケーションの名前) P4:(アプリケーションのバージョン) P6:44bf9bb2
      P7:f9c P8:12d P9:pszqoadhx1u5zahbhohghldgiy4qixhx
    4. 起動できなくなったので、アンインストールをしようと「プログラムの追加と削除」から、
      アプリケーションの「変更と削除」ボタンを押すと、
      「アプリケーションを起動できません。アプリケーションのベンダに問い合わせてください。」という、
      エラーダイアログが表示されてしまい、アンインストールする事ができませんでした。

      表示されたエラーダイアログの「詳細」ボタンを押すと、エラーの詳細が表示されますが、
      内容的には

      * (アプリケーション配置URL).application のライセンス認証により例外が発生しました。
      次の失敗メッセージが検出されました:
        + 参照されたアセンブリはシステムにインストールされていません。
      (HRESULT からの例外: 0x800736B3)

      とあり、アセンブリがインストールされていないというのが分かります。
    5. そこで、アセンブリを追加インストールしようとWebサーバに配置してある
      .application ファイルを参照すると、
      やはり同じ「アプリケーションを起動できません。アプリケーションのベンダに問い合わせてください。」
      というエラーが出てしまい更新する事ができませんでした。

    なお、問題が発生したユーザの環境は、

    • Windows XP SP2
    • .NET Framework 2.0 ランタイム
    • 2006/09/26現在提供されている全てのセキュリティパッチ適用済み

    となっています。

    実は、同様の問題が以前にも1度違うユーザで発生しましたが、
    その際にはOSごと再インストールするという荒療治で解決しました。

    今後もこのアプリケーションは更新されますし、
    ユーザ数も増加する方向に向かっているため、
    毎回OSごと再インストールというソリューションを適用する事は困難だと考えています。

    ですので、この状況を打開する策としてOS再インストール以外の何らかの方法、
    あるいは、手動でClickOnceのインストール情報を全て消去する方法などを
    ご存知の方がいらっしゃいましたらご教授願えませんでしょうか。

    よろしくお願いいたします。

    2006年9月26日 6:10

回答

  • おっしゃってるような現象はわかりませんが、
    C:\Documents and Settings\<ユーザ名>\Local Settings\Apps\2.0
    以下のフォルダ(場合によっては取捨選択が必要)を
    削除すれば再びダウンロードされるように思います。
    ClickOnceのアプリはそのフォルダにダウンロードされています。
    今回のケースでこれでうまくいくのかは不明ですが。
    2006年9月26日 6:59

すべての返信

  • おっしゃってるような現象はわかりませんが、
    C:\Documents and Settings\<ユーザ名>\Local Settings\Apps\2.0
    以下のフォルダ(場合によっては取捨選択が必要)を
    削除すれば再びダウンロードされるように思います。
    ClickOnceのアプリはそのフォルダにダウンロードされています。
    今回のケースでこれでうまくいくのかは不明ですが。
    2006年9月26日 6:59
  • >mars12さん

    実際に「C:\Documents and Settings\<ユーザ名>\Local Settings\Apps\2.0」以下の必要なフォルダを削除してみました。
    削除後に、.applicationの配置してあるWebサーバへアクセスしたところ、
    再びインストールする事ができました。

    また、プログラムの追加と削除からもアンインストール用のダイアログが表示されるようになりました。

    この方法ならユーザに指示する際に伝えやすく分かりやすくて、
    ユーザのオペレーションミス率も低そうなのでいいですね。

    ありがとうございました。

    2006年9月26日 10:37