Se usi un installer generato con Visual Studio (o comunque che utilizza Windows Installer), puoi utilizzare msiexec.exe avendo a disposizione il GUID dell'installer (lo trovi nelle proprietà del progetto setup).
Il comando da usare è questo:
msiexec.exe /uninstall {GUID-con-le-graffe} /qf
Lo puoi invocare creando un eseguibile che lo lancia. Questo eseguibile lo copi nella TargetDir dell'installer e aggiungi un collegamento che lo chiama con un parametro che è il GUID dell'installer.
Il codice dell'eseguibile è realmente banale (io lo uso spesso):
public static class Program {
[STAThread]
public static void Main(string[] args) {
if(args.Length < 1) return;
System.Diagnostics.Process.Start("msiexec.exe", "/uninstall " + args[0] + " /qf");
}
}