Reputation: 14507
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?
Upvotes: 6
Views: 14671
Reputation: 3235
You have to use Custom Actions for that:
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);
Note: A great example of this is located here. They explain this example in greater detail. Something that was not obvious in this answer at first was the fact you had to add the Installer Class template within the APPLICATION'S project, NOT the Application's SETUP project. Basically the setup project calls the procs Install() and Uninstall() from any application that is added to the Custom Actions in the setup project. The idea is to override those two procs to inject code to do your bidding...
Upvotes: 13
Reputation: 4385
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)
Upvotes: 0
Reputation: 50712
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 ;)
Upvotes: 0