2012-11-24 11 views
9

Mój program tworzy pliki w formacie c:\Users\GameDev\AppData\Local\<my game folder>. Czy możliwe jest powiadomienie InnoSetup o usunięciu całego folderu podczas procesu dezinstalacji, mimo że instalator go tam nie umieścił?Jak usunąć folder podczas dezinstalacji?

+0

Czy chcesz usunąć * jakiś * katalog, niezwiązany z twoim instalatorem? – TLama

+0

Tak, to prawda. W momencie instalacji ten folder nie istnieje, ponieważ jest tworzony w środowisku wykonawczym przez mój program. – superwpf

+0

To jest zadanie sekcji ['[UninstallDelete]'] (http://jrsoftware.org/ishelp/topic_uninstalldeletesection.htm), ale będziesz mieć problem z uzyskaniem zawsze poprawnej ścieżki danych aplikacji użytkownika. – TLama

Odpowiedz

19

Aby usunąć określony folder niezwiązany z instalatorem (ponieważ, jeśli nie zostanie to wyraźnie określone, wszystkie pliki i katalogi zostaną usunięte przez utworzony deinstalator), należy użyć sekcji [UninstallDelete]. Tam możesz określić coś takiego dla twojego przypadku:

[UninstallDelete] 
Type: filesandordirs; Name: "{localappdata}\<my game folder>" 
+0

Dzięki za pomoc. – superwpf

+1

Cieszę się, że pomogliśmy ;-) – TLama

+0

Nie działa to w przypadku instalacji dla wielu użytkowników z osobnymi ustawieniami, gdzie każdy użytkownik ma swoje własne ustawienia w folderze {userappdata} dla programu. Rozwiązując ten problem, musiałem sprawić, aby mój program przechowywał listę pod {commonappdata} folderów ustawień wszystkich użytkowników, którzy uruchomili program (i, robiąc to, utworzył wyżej wymieniony folder ustawień). Ta lista została następnie użyta do usunięcia wszystkich tych folderów przez uruchomienie wbudowanej procedury deinstalacji w samej aplikacji, która została uruchomiona z [UninstallRun] w deinstalatorze Inno przez uruchomienie aplikacji z parametrem wiersza poleceń. – Nyerguds

Powiązane problemy