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

Textfilechange vor Installation eines Redistributables


6 replies to this topic

andyeaust

andyeaust
  • Full Members
  • 3 posts

Posted 19 June 2013 - 13:00

Hallo,

 

habe folgendes Problem, wir müssen zusätzlich eine Software installieren welche ich als Redistributable in ein Feature eingebunden habe.

Das Problem ist nun die Installation braucht zwingend eine Antwortdatei um diese auszuführen.

Eine vorbereitete Antwortdatei habe ich nun einer Component innerhalb des Features zugewiesen und im %TEMP% abgelegt.

 

Mein eigentlcihes Problem ist nun:

1. Ist es irgendwie möglich zu sagen, dass die Datei zum einen kopiert wird bevor das Redistributable installiert wird bzw. kann ich sagen, dass die Datei irgendwo bei den Quelldateien liegt?

2. des weiteren muss ein textfilechange ausgeführt werden welches Propertys in das Textfile setzt.

Dieses Textfile wird dann als Antwortdatei genutzt. um das Redistributable zu installieren.

 

Hoffe meine Beschreibung ist einigermaßen verständlich.

 

Danke für eure Hilfe



ali

ali
  • Full Members
  • 1,008 posts

Posted 20 June 2013 - 14:55

Du könntest die Textdatei über den Direkt-Editor in die Binary Table aufnehmen.und in der Execute Sequenz dann in dein Zielverzeichnis ablegen, bevor installiert wird.

Das Verzeichnis musst du vorher erstellen, da es womöglich noch nicht da ist.

 

svMyDir=MsiGetProperty(hMSI,"VERZEICHNISPROPERTY", svMyDir, nBuff);

if(CreateDir ( svMyDir ) < 0) then
      SprintfMsiLog ( "Directory: %s konnte nicht erstellt werden!" , svMyDir);
endif;

StreamFileFromBinary(ISMSI_HANDLE, szNameDesBinaryEintrages, svMyDir);

 

Dann hast du das TextFile im Zielordner und kannst dieses dort auch direkt bearbeiten mit OpenFileMode und OpenFile, dann mit MsiGetProperty deine Propertys auslesen und mit WriteLine in die Textdatei schreiben. CloseFile nicht vergessen.

 

Ist ein bisschen kurz, sorry dafür, aber evtl. hilft es dir.



andyeaust

andyeaust
  • Full Members
  • 3 posts

Posted 21 June 2013 - 07:56

OK, das mit dem Directeditor funktioniert so weit, als Verzeichnis habe ich einfach das TEMP Verzeichnis genutzt, da ich die Datei nur einmalig zur Installation benötige.

 

Das mit dem Open File Mode usw. ist mir theoretisch klar wie das funktionieren soll, bin nur nicht so fit in der Scripterstellung.

Ist vielleicht frech, aber hast du evtl, irgendwie ne kleine Vorlage wie das ungefähr aussehen müsste. Was wichtig ist das er Quasi wie in der GUI eine Suche nach bestimmten einträgen macht und diese dann ersetzt.

Der normale Textfile Change kommt ja wohl viel später in der Installation.



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 21 June 2013 - 12:42

Script und Direct Editor brauchst du gar nicht. Leg die Datei einfach unter Behavior and Logic > Support Files > Language Independent ab. Sie werden dann temporär ins SUPPORTDIR entpackt.



andyeaust

andyeaust
  • Full Members
  • 3 posts

Posted 21 June 2013 - 13:23

Script und Direct Editor brauchst du gar nicht. Leg die Datei einfach unter Behavior and Logic > Support Files > Language Independent ab. Sie werden dann temporär ins SUPPORTDIR entpackt.

 

Das ist natürlich noch besser, dann muss ich mich nicht um löschaktionen usw. kümmern.

Fällt dir noch was ein zum Properties setzen in der Datei vor der Installation des redist.



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 24 June 2013 - 17:07

Das könntest du evtl. per Custom Action am Ende der InstallUI Sequenz machen. Funktioniert natürlich nicht bei einer Silent-Installation.



ali

ali
  • Full Members
  • 1,008 posts

Posted 26 June 2013 - 15:57

Ich hoffe ich habe deine Beschreibung recht versanden, aber wenn du nach dem Bereitstellen der Datei wirklich auch Properties im Textfile ersetzen willst, wirst du dies vermutlich mit einem Script machen, da du selbst sagst, dass dir der TextFileChange von IS zu spät kommt. Wenn du dann Script nimmst, ist das Bereitstellen der Datei nur ein Aufruf im Script StreamFileFromBinary.... Laut der IS-Hilfe ist im Basic MSI das SUPPORTDIR auch nicht immer eindeutig und wird CA Bezogen unterschiedlich gesetzt. Ich würde dir raten erst einmal grundsätzlich zu überlegen was/Wie du Deine Lösung angegen möchtest und dann wählen. Wenn du dann ohnehin Script nimmst, würde ich aus das Bereitstellen aus dem Script vornehmen, denn dann hast du Bereistellung und Änderung innerhalb einer CA abgearbeitet.

 

In Basic MSI or InstallScript MSI projects, each InstallScript custom action initializes its own engine. Each engine does not know where the primary SUPPORTDIR is, and each engine does not extract its own private copy of the support files. For instructions on locating the extracted support files from a custom action, see Placing Files in the .msi Database and Extracting Them During Run Time.