Deinstallationspfad: Program Files und Program Files (x86)

Antworten
Opsignum
Beiträge: 7
Registriert: 18 Feb 2016, 12:34

Deinstallationspfad: Program Files und Program Files (x86)

Beitrag von Opsignum »

Hallo,

ich habe ein 32bit-Installationspaket mit dem setup-detector erstellt (VLC-Player), bei dem folgendes Problem aufgetaucht ist:

Gebe ich im setup-detector den Installationspfad "C:\Program Files\Video LAN\VLC" an, läuft die Installation und Deinstallation auf einer
32bit-Maschine problemlos.

Versuche ich das Gleiche dann auf einem 64-bit Windows, stimmt bei der Installation der Pfad nicht mehr, weil er bei der Installation
automatisch Program Files (x86) nimmt.

Wähle ich beim Erstellen des Pakets als Installationspfad "C:\Program Files (x86)\Video LAN\VLC", ist es genau andersrum, dann funktioniert
die Deinstallation auf der 64bit-Maschine, aber auf der 32bit-Maschine nicht mehr. :evil:

Wie kann man das Problem umgehen? Habe beim Erstellen schon %ProgramFilesSysnativeDir% probiert, aber das hat das Problem nicht
gelöst.

Welchen Pfad muss ich wählen, damit die Deinstallation des VLC-Pakets sowohl unter Windows 32bit als auch unter Windows 64bit funktioniert?

Vielen Dank für die Hilfe,
Matthias
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: Deinstallationspfad: Program Files und Program Files (x86)

Beitrag von n.wenselowski »

Hi,

eigentlich sollten die Konstanten der Weg sein, mit dem es ordentlich funktioniert.
Um zu sehen wo genau es hängt wären die Version des verwendeten Winst und entsprechende Log-Teile, die das Verhalten nachvollziehbar machen, gut.

Als Workaround könnte man eine Weiche in das Paket bauen.


Gruß

Niko

Code: Alles auswählen

import OPSI
Benutzeravatar
wolfbardo
uib-Team
Beiträge: 1411
Registriert: 01 Jul 2008, 12:10

Re: Deinstallationspfad: Program Files und Program Files (x86)

Beitrag von wolfbardo »

Opsignum hat geschrieben: Habe beim Erstellen schon %ProgramFilesSysnativeDir% probiert, aber das hat das Problem nicht
gelöst.

Code: Alles auswählen

%ProgramFiles32Dir%
sollte es tun ...

Gruss
Bardo Wolf


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Opsignum
Beiträge: 7
Registriert: 18 Feb 2016, 12:34

Re: Deinstallationspfad: Program Files und Program Files (x86)

Beitrag von Opsignum »

Problem gelöst!

Ich habe einfach das delsub.opsiscript erweitert, indem das Installationsverzeichnis geändert wird, wenn er des entsprechende Deinstallationsprogramm nicht findet. Die entsprechende Sektion lautet dann

Code: Alles auswählen

if ($SetupType$ = "nsis")
   Set $UninstallProgram$ = $InstallDir$ + "\uninstall.exe"
   if (not($InstallDir$ = '')) and FileExists($UninstallProgram$)
      comment "Uninstall program found, starting uninstall"
      Winbatch_uninstall_nsis /WaitforProcessending "Au_.exe" /Timeoutseconds 10
      sub_check_exitcode
   else
   Set $UninstallProgram$ = $InstallDir2$ + "\uninstall.exe"
   endif
   if (not($InstallDir2$ = '')) and FileExists($UninstallProgram$)
      comment "Uninstall program found, starting uninstall"
      Winbatch_uninstall_nsis /WaitforProcessending "Au_.exe" /Timeoutseconds 10
      sub_check_exitcode
   endif
endif
Vorher muss noch die Variable definiert werden

DefVar $InstallDir2$

und

Set $InstallDir2$ = "C:\Program Files (x86)\VideoLAN\VLC"

An die Stelle hätte man dann auch die Konstante setzen können, aber es funktioniert jetzt auch so problemlos sowohl auf der 32bit als auch auf der 64bit-Maschine.

Viele Grüße
Matthias
Antworten