Как удалить предыдущие версии офлайн приложения clickonce - PullRequest
4 голосов
/ 21 октября 2011

У нас есть приложение winforms net 4.0, которое мы публикуем с помощью clickonce на клиентских компьютерах. Установка составляет около 80 МБ. Приложение доступно в автономном режиме, и обновление происходит при запуске приложения с использованием

ApplicationDeployment.CurrentDeployment.Update

Каждый раз, когда мы обновляем приложение, все работает нормально, и каждый клиент обновляется. Однако размер кеша приложения продолжает увеличиваться ... Мы заметили, что в папке LocalAppData хранится более двух версий. Размер установочной папки clickonce составляет более 1 ГБ.

ClearOnlineAppCache работает только для онлайн-приложений, и мы не находим никакой информации для очистки LocalAppData для автономных приложений.

Есть ли способ управления предыдущими версиями нашего приложения в папке LocalAppData с наших клиентских ПК?

Обновление : Мы удалили наш пользовательский код обновления и использовали механизм обновления платформы Clickonce. Теперь старые версии удаляются правильно, и только две версии хранятся в LocalAppData. Я до сих пор не знаю, почему все версии сохраняются, когда мы обновляем через пользовательский код обновления.

1 Ответ

2 голосов
/ 23 октября 2011

Я уже сталкивался с этой проблемой раньше, но перед тем, как ответить, я разъяснил это руководству ClickOnce в Microsoft.

Он содержит две версии развертывания плюс дополнительные папки для каждой сборки.При обработке обновления ClickOnce выясняет, какие файлы были изменены, сравнивая их с уже кэшированной сборкой, и загружает только те, которые были изменены.Папки развертывания имеют жесткие ссылки на сборки в отдельных папках.Таким образом, вы можете увидеть дополнительные файлы, но на самом деле это не файл, а ссылка на файлы в папках только для сборки.Explorer покажет это как файл, но это не так.Поэтому, если вам не хватает места на диске и вас беспокоит только размер папки, помните, что информация, сообщаемая Windows Explorer, может быть неточной.

...