Как я могу удалить свое приложение для C# (саморазрушение)? Вот два способа, которые, я думаю, могут сработать:Как я могу удалить мое приложение .NET?
- Поставка другой программы, которая удаляет основную программу. Однако, как удалить эту программу удаления?
- Создайте процесс для CMD, который ждет несколько секунд, и удалит ваш файл. В течение этих нескольких секунд вы закрываете приложение.
Оба эти метода кажутся неэффективными. У меня такое ощущение, что в Windows есть встроенный флаг или что-то в этом роде. Как я должен это делать? Кроме того, можете ли вы предоставить примерный код?
ОБНОВЛЕНИЕ: Спасибо за все ваши ответы! Я собираюсь попробовать их и посмотреть, откуда меня это достало.
Прежде всего, некоторые люди спрашивают, почему я хочу, чтобы мое приложение это делало. Вот ответ: несколько дней назад я прочитал спецификацию Project Aardvark, которую Джоэл Спольски опубликовал в своем блоге, и он упомянул, что клиентское приложение удалит себя после удаленного сеанса. Мне интересно, как это работает, и как, если мне когда-либо понадобится это сделать, я смогу совершить такой подвиг.
Вот небольшой обзор того, что было предложено:
- Создать запись реестра, который сообщает Windows, чтобы удалить файл при перезагрузке
- Запуск CMD с пингами подождать несколько секунд и затем удалите файл
У обоих из них, конечно же, есть свои недостатки, как указано в комментариях.
Однако, будет ли такой способ, как указано ниже, работать?
Имеются 2 исполняемые файлы: Program.exe и Cleaner.exe. Первая - это сама программа, последняя - приложение, которое удаляет Program.exe и себя (если оно загружено в память, как я собираюсь объяснить). Возможно ли для Program.exe (который имеет зависимости) до загрузить весь Cleaner.exe, который не имеет каких-либо зависимостей, в память и запустить его?
Если возможно, может быть, Cleaner.exe будет упакован внутри программы Program.exe, загружен в память и запустит?
Вам действительно нужно удалить программу или просто отключить ее? Я просто хочу понять, полностью ли я понимаю бизнес-логику, потому что обычно полностью отключить что-то безопаснее, чем удалять. –
Да, отключите его, а не удаляйте. – 2010-02-11 14:52:04
Зачем вам это нужно? Похоже, приложение не подходит, и вам нужно избавиться от доказательств. – AGoodDisplayName