views:

1137

answers:

3

I have a window .net application named "XYZ", I have created a custom folder named"ABC" (folder may be anywhere other than application path) while using my application after installation.

When i am uninstalling the application all folders are removed but "ABC" folder remain there.

How can I delete 'ABC' folder which resides other than application path?

A: 

create custom installer, you can read here for more detailes EDIT Here is better link, the sample is in VB.NET, but is not difficult to understand ;)

ArsenMkrt
A: 

As per my knowledge, if you are using an installer to install the app & the folder is created by your app & not the installer, then it will not delete it.

Instead you will have to use a custom action that will run at un-installation which will delete it. Or create a custom C# app which is run only when uninstallation is in progress which will delete the folder. (I assume you are using some professional Installer like InstallShield)

Ganesh R.
+1  A: 

You have to use Custom Actions for that:

  1. Add a new library ("CustomActions") to the setup project
  2. Add => New Item => Installer class
  3. Switch to code view and override the Uninstall method

Code:

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

    // Delete folder here.
}

If you don't want to write your own DeleteFolder method add a reference to Microsoft.VisualBasic:

 Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory("C:\\MyFiles", Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents);
  1. Add the project output (Primary Output) of the CustomActions project to the setup project.
  2. Right click your setup project and click View => Custom Actions
  3. Rigth click uninstall => Add Custom Action => Application Folder => Primary Output of CustomActions