ClickOnceで困った・・・

過去の遺物だと思っていた「dll hell」の再来か??????

 

ClickOnceって、内部でどのように動いているのかまで理解していない(もっとも、普通のmsiのセットアップだとて理解出来ていない)が、非常に便利なので、標準で使っている。

 

特に、修正を行ったとき、「サーバーに上げてお仕舞い!」の手軽さが最高だった。

 

しかし、本日は、困った。

 

いつものように、

 ・バージョン番号を確認して

 ・発行して

 ・サーバーに上げて

 ・テストマシンで、対象アプリを起動すると

 ・いつものように、アップデートのダイアログが出て

 ・OKをクリックすると

 

エラーになった・・・・・・・

 

 

詳細ボタンをクリックすると

エラーの詳細
    この操作中に次のエラーが検出されました。
    * [2014/03/13 10:59:11] System.ArgumentException
        - 値が有効な範囲にありません。
        - ソース:System.Deployment
        - スタック トレース:
            場所 System.Deployment.Internal.Isolation.IStore.LockApplicationPath(UInt32 Flags, IDefinitionAppId ApId, IntPtr& Cookie)
            場所 System.Deployment.Application.ComponentStore.LockApplicationPath(DefinitionAppId definitionAppId)
            場所 System.Deployment.Application.SubscriptionStore.LockApplicationPath(DefinitionAppId definitionAppId)
            場所 System.Deployment.Application.FileDownloader.PatchFiles(SubscriptionState subState)
            場所 System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)

 

こんなスタックトレースでは、わからん。

 

ぐぐっても、

インストールされる

C:\Users\ユーザ名\AppData\Local\Apps\2.0

以下のフォルダを削除しろ!

 

とか、バカなことしか見つからない。

 

削除したら、他のClickOnceアプリとデータが吹っ飛ぶでしょうが?

 

 

Gitで、以前のアップデートリリース時点まで戻り

再度、ファイルを修正して発行しても同じ。

 

 

発行したセットアップファイルに問題があるのか?

インストールしたテストマシンに問題があるのか?

 

誰か、教えて下さい。

 

追記

 

エラーの出るマシンと出ないマシンとがある。

結局は、エラーの出るマシンは、アンインストール、再インストールで対応する。

 

しかし、データをClickOnceに任せていたら、一緒にアンインストールされるので、データは別なところへ置かないと、気軽にアンインストール出来なくなる。