Подтвердить что ты не робот

Можно ли настроить ClickOnce для удаления старых опубликованных каталогов?

Можно ли настроить ClickOnce для удаления старых опубликованных каталогов?

Или

Кто-нибудь написал какой-нибудь код, который удалит эти каталоги публикации (возможно, сохраняя последние 10)?

В настоящее время каждый раз, когда выполняется публикация ClickOnce, на сервере IIS создается новый каталог. Этот НОВЫЙ каталог содержит копию всего приложения, которое загружается. Старые каталоги, похоже, больше не используются и просто занимают много места.

Вот пример создаваемых имен каталогов. Как вы видите, номер версии приложения используется в имени.
EduBenesysNET_1_0_1_0
EduBenesysNET_1_0_1_1
....
EduBenesysNET_1_0_1_192
EduBenesysNET_1_0_1_193

У нас было 194 (основанных на нуле) строках с каждым каталогом, остающимся там. Если размер одной сборки составляет около 50 мб, вы можете увидеть, как сохранить старые каталоги там, чтобы начать есть на диске.

Как работает наше приложение, вам всегда нужно загрузить последнюю версию. У вас нет возможности пропустить загрузку, поэтому я надеюсь, что удаление старых каталогов не должно быть проблемой.

4b9b3361

Ответ 1

Хороший вопрос (+1) - можно подумать, что это должно быть возможно как-то...

Выглядит немного ближе, хотя показывает, что наблюдаемое поведение публикации на самом деле не является особенностью технологии ClickOnce, а скорее из мастера публикации Visual Studio - см., например, раздел ClickOnce опубликовать структуру папок в Процесс публикации ClickOnce:

Если вы вручную создаете или обновляете публикацию приложения ClickOnce с помощью Mage или настраиваемого инструмента, , вы не ограничены этой папкой и файловой структурой. Для любой конкретной публикации ClickOnce цепочка зависимостей включает в себя следующее: [...] [акцент мой]

Пошаговое руководство: вручную развертывание приложения ClickOnce дает тот же вывод, то есть структура папок, используемая VS, является просто (разумным) соглашением/подход.

К сожалению, мастер публикации VS не предлагает удалять старые версии, по крайней мере, он нигде не виден и не документирован. Однако, учитывая, что результирующая структура папок является всего лишь артефактом процесса сборки, вы можете также добавить шаг пользовательской сборки, выполнив именно это - выяснение деталей (т.е. доступ к свойствам автоматизации VS для получения последней опубликованной версии и т.д.) вне сферы вашего вопроса, хотя;)

Относительно вашего дополнительного вопроса:

Я надеюсь, что удаление старых каталогов не должно быть проблемой.

Определенно, это не проблема, это зависит от того, сколько из них вы хотите сохранить для операций отката в конце концов, см., например, Можно ли удалить предыдущие старые версии из публикации Location, созданной ClickOnce?

Ответ 2

Короткий ответ заключается в том, что это не то, что встроено в развертывание Visual Studio или ClickOnce, и вам придется найти другой способ сделать это, возможно, через script, который вы запускаете на своем сервере.

Вы можете удалить все версии, кроме текущего, если вы нажимаете обновления по мере необходимости. Если вы этого не сделаете, вы захотите сохранить две версии, если пользователь вернет версию.