Как удалить папку при удалении в приложении C # .NET? - PullRequest
2 голосов
/ 13 июля 2009

У меня есть окно .net приложения с именем «XYZ», я создал пользовательскую папку с именем «ABC» (папка может быть где угодно, кроме пути приложения) при использовании моего приложения после установки.

Когда я удаляю приложение, все папки удаляются, но папка «ABC» остается там.

Как я могу удалить папку 'ABC', которая находится не в пути к приложению?

Ответы [ 3 ]

10 голосов
/ 13 июля 2009

Для этого вы должны использовать пользовательские действия:

  1. Добавить новую библиотеку («CustomActions») в проект установки
  2. Добавить => Новый элемент => Класс установщика
  3. Переключиться в режим просмотра кода и переопределить метод удаления

Код:

public override void Uninstall(IDictionary savedState)
{
    base.Uninstall(savedState);

    // Delete folder here.
}

Если вы не хотите писать свой собственный метод DeleteFolder, добавьте ссылку на Microsoft.VisualBasic:

 Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory("C:\\MyFiles", Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents);
  1. Добавьте выходные данные проекта (основной выход) проекта CustomActions в проект установки.
  2. Щелкните правой кнопкой мыши свой проект установки и выберите View => Custom Actions
  3. Щелкните правой кнопкой мыши по удалению => Добавить пользовательское действие => Папка приложения => Основной вывод пользовательских действий

Примечание. Отличным примером этого является здесь . Они объясняют этот пример более подробно. Сначала в этом ответе было неочевидным то, что вам пришлось добавить шаблон класса установщика в проект APPLICATION, а не в проект SETUP приложения. В основном проект установки вызывает procs Install () и Uninstall () из любого приложения, которое добавляется в пользовательские действия в проекте установки. Идея состоит в том, чтобы переопределить эти два процесса, чтобы ввести код для выполнения ваших ставок ...

0 голосов
/ 13 июля 2009

Насколько мне известно, если вы используете установщик для установки приложения и папка создается вашим приложением, а не установщиком, то он не будет его удалять.

Вместо этого вам придется использовать настраиваемое действие, которое будет выполняться при деинсталляции, что приведет к его удалению. Или создайте пользовательское приложение C #, которое будет запущено только во время удаления, которое удалит папку. (Я предполагаю, что вы используете какой-то профессиональный установщик, например InstallShield)

0 голосов
/ 13 июля 2009

создать пользовательский установщик, вы можете прочитать здесь для более подробной информации EDIT Вот лучше ссылка , образец есть в VB.NET, но не сложный для понимания;)

...