2011-10-21 37 views
4

私たちは、クライアントPCにclickonceで公開する4.0のwinformsアプリケーションを持っています。インストールは約80 MBです。アプリケーションがオフラインで利用可能であり、更新は、我々は、アプリケーションのすべてのアップデートを行うたびに正常に動作し、各クライアントがudpatedますオフラインのClickonceアプリケーションの以前のバージョンを削除する方法

ApplicationDeployment.CurrentDeployment.Update 

を使用して、アプリケーションの起動時に発生します。しかし、アプリケーションキャッシュのサイズは大きくなっています... LocalAppDataフォルダーに2つ以上のバージョンが保存されていることがわかりました。クリックインストールのフォルダのサイズは1GB以上です。

ClearOnlineAppCacheはオンラインアプリケーションでのみ動作し、オフラインアプリケーションのLocalAppDataを消去する情報はありません。

クライアントPCのLocalAppDataフォルダに以前のバージョンのアプリケーションを管理する方法はありますか?

更新: カスタム更新コードを削除し、Clickonceフレームワークの更新メカニズムを使用しました。古いバージョンは正しく削除され、LocalAppDataには2つのバージョンしか保存されません。カスタム更新コードを更新する際に、なぜすべてのバージョンが保持されるのかまだ分かりません。

+0

ここで同じ問題があります。カスタマイズされた更新動作のため、デフォルトに変更することはできません。 – LuckyLikey

答えて

1

これまで私がこの問題を経験しましたが、回答する前にMicrosoftのClickOnceリードで明確にしました。

2つのバージョンのデプロイメントを保持し、各アセンブリごとに追加のフォルダがあります。更新を処理するとき、ClickOnceは既にキャッシュされているアセンブリと比較して変更されたファイルを特定し、変更されたファイルのみをダウンロードします。展開フォルダには、別々のフォルダにあるアセンブリへのハードリンクがあります。したがって、追加のファイルが表示されることがありますが、実際にはファイルではなく、アセンブリ専用のフォルダ内のファイルへのリンクです。 Explorerはそれをファイルとして表示しますが、そうではありません。したがって、ディスク容量が不足していて、フォルダのサイズだけが懸念されている場合を除き、Windowsエクスプローラによって報告される情報が正確ではないことに注意してください。

+0

ディスクスペースが不足していませんが、CheckForUpdateメソッドは新しい更新が利用可能かどうかを検出するまでに時間がかかります。私たちがLocalAppDataフォルダのファイルをクリアしてアプリケーションを実行すると、CheckForUpdateは通常5〜6回目のアップデートまで実行されます... – Niki

関連する問題