kraft shdl

Ein Kunde ruft bei uns an und berichtet von einem Nutzer, bei dem nach der Deinstallation einer Software plötzlich Systemdateien fehlten. Er kündigt am nächsten Tag zu diesem Thema eine Telefonkonferenz an. Ein kurzer Blick in den Code offenbart furchtbares. Wenn jemand die Software nicht in den vorgeschlagenen Ortner installiert, sondern beispielsweise in den Systemordner, werden dort mit der Deinstallation alle Dateien gelöscht.

Es ist zwar noch nicht evaluiert, aber das dürfte das Problem sein. Eine mögliche Lösung: Mit dem ersten Start schreiben wir eine Datei mit den vorhandenen Dateien und Ordnern (also quasi dir /b > installed.txt). bei der Deinstallation lesen wir diese Datei aus und löschen nur die darin gelisteten Dateien einschließlich der Datei selbst. Der Ordner wird nur gelöscht, wenn er leer ist.

So geht es auf jeden Fall nicht:

private void Permission_AfterUninstall(object sender, InstallEventArgs e)
{
	string Path_LabelFiles = Path.Combine(Application.StartupPath, @"Labels");
	if (Directory.Exists(Path_LabelFiles))
	{
		try
		{
			Directory.Delete(Path_LabelFiles, true);
		}
		catch (Exception ex)
		{
			//nope
		}
	}

	try
	{
		Directory.Delete(Application.StartupPath, true);
	}
	catch
	{
	}

}