Hallo,
das Setup, welches ich entwickel, enthält auch die Repair-Funktion. Diese Funktion kann auch per Programs&Features aus der Windows Systemsteuerung aufgerufen werden. Einer der ersten Schritte, welche ich als CustomAction ausführe ist es zu prüfen, ob das setup von der original Installations-CD aufgerufen wurde oder per Programs&Features:
function BOOL CheckAndSetSetupSource() STRING szCurrentSrcDir, szVersionFileName, szVersionFilePathAndName; NUMBER nRet; BOOL bRet; begin szCurrentSrcDir = SRCDIR; //Check if the Versionfile is in the current directory szVersionFileName = "__Version_" + IFX_PRODUCT_VERSION; szVersionFilePathAndName = szCurrentSrcDir ^ szVersionFileName; if(Is(FILE_EXISTS, szVersionFilePathAndName) == TRUE) then bRet = TRUE; else //Setup was NOT started from the original Disk nRet = EnterDisk(@IDS_MSG_ENTER_DISK + " (" + IFX_PRODUCT_VERSION + ")", szVersionFileName); if(nRet < 0) then bRet = FALSE; else bRet = TRUE; endif; endif; VarSave(SRCTARGETDIR); return bRet; end;
Wenn nun 3rdParty Tools isntalliert werden (zumBeispiel SRCDIR ^ "3rdPartySetupRepair.exe") dann wird der neue gewählte Pfad verwendet.
Wenn nun aber die ersten Files aus data2.cab repariert / neu kopiert werden sollen, so fragt IS wieder nach dem Pfad/CD, an welchem sich die Datei data2.cab befindet. Als vorausgefüllter Pfad ist der Pfad aus der Erstinstallation eingetragen (registry).
Wie kann ich diese zweite Abfrage verhindern? Welche IS Variable wird denn für FeatureTransfere verwendet?
Viele Grüße
Daniel