Вы можете удалить файлы во время удаления, используя пользовательское действие. Один из самых простых способов настроить это с помощью класса установщика.
Эта статья Арнальдо Сандовала немного устарела, но все же это довольно хороший обзор того, как использовать классы установщика для реализации пользовательских действий. Он даже включает раздел об очистке файлов при удалении.
Однако вместо переопределения методов в классе Installer лучше добавить прослушиватели событий. То, где вы получаете «сохраненное состояние», также немного отличается. Например, в статье описывается переопределение метода Install для захвата TargetDir вместо:
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
stateSaver.Add("TargetDir", Context.Parameters["DP_TargetDir"].ToString());
}
Вы бы создали метод, подобный следующему:
private void onBeforeInstall(object sender, InstallEventArgs args)
{
// The saved state dictionary is a property on the event args
args.SavedState.Add("TargetDir", Context.Parameters["DP_TargetDir"].ToString());
}
И зарегистрировать его в конструкторе:
public InstallerClass() : base()
{
this.BeforeInstall += new InstallEventHandler(onBeforeInstall);
}
Вы также можете зарегистрировать события через редактор свойств Visual Studio, если это больше ваша вещь.
Остальная часть статьи превосходна, особенно разделы, в которых обсуждаются все недокументированные «особенности» различных событий установки.