Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Komponente erneut installieren


5 replies to this topic

Jan Becker

Jan Becker
  • Members
  • 285 posts

Posted 27 March 2001 - 13:18

hi,

ich habe eine komponente, die waehrend des normalen setups installiert wird. wenn nun der maintenance mode aktiv wird, kann man (theoretisch) diese komponente in ein anderes verzeichnis erneut kopieren. das klappt aber nicht, da IS wohl meint, sie ist schon drauf, also braucht sie nicht nochmal kopiert werden. gibts da ne elegante moeglichkeit, das zu realisieren?
ich dachte mir z.b. das loggen im beforeinstall-event abzuknipsen und im afterinstall-event wieder anzuknipsen.


Jan Becker

Jan Becker
  • Members
  • 285 posts

Posted 27 March 2001 - 13:46

mitloggen aus und einschalten klappt leider nicht. nix wird installiert!

Chris

Chris
  • Members
  • 22 posts

Posted 28 March 2001 - 08:17

Setzt du die Komponente mit
ComponentSetTarget(MEDIA, "<meinekomp>", "szDatadir")?

Ich würde das dann so lösen, in dem du in OnMaintBefore() erneut ComponentSetTarget aufrufst und einen anderen Verzeichnis angibst, dann machst du ComponentReinstall(); Du musst aber aufpassen, da alles neu installiert wird. --> Neuere oder ältere Datei, bzw. Schreibgeschützt!!!
Ich bin mir aber nicht sicher, ob das funktioniert.


Jan Becker

Jan Becker
  • Members
  • 285 posts

Posted 28 March 2001 - 08:54

ich denke, dass es klappen wuerde, aber ich kann es nicht auf mich nehmen, alle komponenten erneut zu installieren. die eine komponente umfasst nur ein paar dateien. deswegen braeuchte ich eine moeglichkeit, den status einer komponente im logfile von IS zu aendern oder eine komponente einzeln zu reinstallieren.

Jan Becker

Jan Becker
  • Members
  • 285 posts

Posted 28 March 2001 - 09:50

gut, es ist geloest. ich habe einfach in das installed event folgenden code gehangen:

OBJECT objLog;
begin
set objLog = LOG;
objLog.Property("State") = 0;
// eigener kram
// ...
end;

nach jedem installieren der komponente wird ihr status wieder auf nicht installiert gesetzt und man kann sie immer wieder installieren. wunderbar.

jan