none
ClickOnceアプリケーションをアンインストールする方法 RRS feed

  • 質問

  • いつもお世話になっております。
    .NET Framework 2 (C#) で開発をしています。

    ClickOnceでインストールしたアプリケーションを手軽にアンインストールする方法を探しています。
    ※正確には、Documents and Settings\[ユーザ名]\Local Settings\Apps以下のファイルをクリアする方法

    稀にですが、インストールファイルの一部が破損したのか、
    アプリケーションが起動できなくなってしまうことがあります。
    この時、上記のファイルを手作業で削除すれば、次回起動時にインストールされるため、
    それからは正常に起動するようになるのを確認しました。
    しかし、複数のプログラムがインストールされている場合もあり得るため、あまり詳しくない利用者に
    その作業を求めるのが難しいという状況です。

    なお、このプログラムはオンラインでのみ利用可能という設定で発行しているため、
    プログラムの追加と削除の一覧に表示されず、こちらからの削除ができません。


    利用者に削除作業をさせる場合、どういった方法、対策があり得るでしょうか。
    まず自分で考えたものを列挙させて頂きます。

    【案1】削除用のプログラムEXEを配布し、それを実行してもらう
    こちらで削除用のプログラムを作る必要があります。
    ただ、上記フォルダの中から当該アプリケーションのフォルダを探す方法が分かりません。
    省略されたアプリ名の文字列を含むフォルダを探して全部削除(中身もチェック)で一応できますが、
    もう少しスマートに特定する方法は無いのでしょうか。

    【案2】プログラムをオフラインでも実行可能に設定する
    こうすれば、「プログラムの追加と削除」から削除してもらうことができます。
    ただ、このアプリケーションは、ウェブ上で自動生成される起動オプションが必須であるため、
    オフラインで(すべてのプログラムの一覧から)起動するのはNGです。
    オプションが無ければプログラムを停止させればいいのですが、「じゃあプログラム一覧に余計なショートカット置くなよ」
    という新たな注文を受けることになります。
    このショートカットを生成しない方法があればいいのですが・・・


    【案2】の問題(ショートカット生成)が解決できれば、多分これが一番楽だと考えています。
    あるいは、全く異なるアプローチでも構いません。
    何か助言を頂けないでしょうか。
    2012年1月10日 5:09

回答

すべての返信

  • >>稀にですが、インストールファイルの一部が破損したのか、
    >>アプリケーションが起動できなくなってしまうことがあります。

    この根本原因を探るべきではないでしょうか?

     

    確かに環境を作りなおせば動くというのは解ります。

    ですが、この現象の根本原因が見えていない限り、

    それに派生して別の障害が起きていないとも限らないのでは?

     

    もしも確証を持ってこの対応を選ぼうとされているのであれば、

    失礼な事を言って申し訳ありません。

    2012年1月10日 5:23
  • 回答ありがとうございます。

    確かにご指摘の通り、その根本原因を解決できれば問題ありません。
    これに派生して別の障害が起きないという確証もありません。
    #派生障害については、そもそもファイルをクリアしてしまえば一緒に消えてくれますが・・・

    しかし、その解決がいつできるか分からないのが実情です。
    であれば一時的にでも次善策を取るしかなく、それが今回の経緯になります。

    #あまり重大でない不具合なだけに、私の立場では「解決するまでリリースするな」とは言えないのです。。。
    #現実問題として、すぐ実現可能な次善策を検討するしかありません。
    2012年1月10日 5:54
  • オンラインキャッシュをクリアしなければならない状況は多くないはずですので、CleanOnlineAppCacheで全てのオンラインキャッシュをクリアしても運用的には良いのではないでしょうか?

    CleanOnlineAppCache
    http://www.atmarkit.co.jp/fdotnet/dotnettips/456cleanonlinecache/cleanonlinecache.html

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク femp 2012年1月10日 7:05
    2012年1月10日 6:11
    モデレータ
  • 回答ありがとうございます。

    CleanOnlineAppCacheについては既に調べてありまして、他のプログラムがあった場合に
    一緒に削除してしまうため、当該アプリのみを特定できないか、と思っていたのですが・・・

    考えてみれば、オンラインキャッシュは削除しちゃってもあまり問題無さそうですね。
    他のプログラムがあっても、次回起動時にインストールしてもらうだけですし・・・
    ご指摘の通り、これが必要になる状況自体がレアケースですので、まずはこれで対応しようと思います。

    ありがとうございました。
    2012年1月10日 7:05