#c#-4.0 #clickonce #uninstallation
#c #-4.0 #clickonce #удаление
Вопрос:
У меня есть проект, который использует clickonce для создания setup.exe . Во время выполнения моя программа создает некоторые дополнительные файлы, такие как «Журнал» и «Вложения» внутри папки пользователя. Однако эти папки не удаляются, когда я выполняю удаление приложения clickonce из ARP. Эти оставшиеся файлы мешают следующей установке.
Я знаю, что click once не поддерживает добавление пользовательских действий для установки или удаления. Мне интересно, есть ли способ, которым я могу удалить эти дополнительные файлы программно после выполнения удаления?
Одним из способов, который я пробовал, было создание сценария очистки и добавление его в качестве пакета начальной загрузки в качестве предварительного условия проекта click once. Это работало таким образом, что каждый раз перед установкой нового продукта предыдущие грязные данные удалялись. Однако это испортило случай обновления.
Есть идеи о том, как удалить лишние файлы, оставшиеся после удаления clickonce?
Спасибо
JS
Комментарии:
1. Известны ли имена дополнительных файлов во время установки? Если да, можете ли вы просто указать пустые файлы для установки, чтобы программа удаления их удалила?
2. Для журналов имя файла фиксировано, однако имя вложения генерируется в случайной форме. Но папка вложений — это известный путь
Ответ №1:
При удалении приложения ClickOnce невозможно что-либо сделать, кроме удаления приложения ClickOnce.
Рассматривали ли вы возможность размещения файлов в ApplicationDeployment.Текущее развертывание.DataDirectory ? Затем они будут удалены, когда приложение будет отключено.
Если файлы являются частью проекта, вы можете задать тип Data в диалоговом окне Application Files, и он автоматически поместит их в каталог data при развертывании.
Комментарии:
1. Спасибо за ваш ответ, Робин. У нас есть несколько файлов базы данных, которые используются пользователями с несколькими окнами. потому что мы хотим поделиться данными между разными пользователями Windows на одном компьютере. Я предполагаю, что одним из возможных способов сделать это было бы создать установщик .msi и встроить его в clickonce setup.exe . таким образом, у нас могут быть пользовательские действия по установке / удалению. но тогда мне снова нужно беспокоиться о случае обновления…
2. Я понятия не имею, почему, но для меня эта папка (ApplicationDeployment. Текущее развертывание. DataDirectory) не удаляется
Ответ №2:
Это решение работает при многократных переустановках (чистых), однако оно не удаляет данные при последнем удалении или до тех пор, пока не будет выполнена следующая установка.
По-прежнему нет настраиваемого действия при удалении для удаления файлов за пределы области clickonce.
Оставьте файл в ApplicationDeployment.Текущее развертывание.DataDirectory.
При запуске проверьте, существует ли файл в условиях развернутой сети, firstrun (который также сбрасывается на upgarde).. в случае успеха это первая установка или обновление. В случае сбоя приложение удаляется и устанавливается снова.. теперь у вас есть возможность очистить данные приложения.
Если данные конфиденциальны, вы можете использовать другое решение для удаления файлов при удалении (на данный момент я не вижу, чтобы Microsoft предоставила нам такую возможность)