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

Dateien nachträglich zur MSI hinzufügen


5 replies to this topic

joey81

joey81
  • Full Members
  • 12 posts

Posted 13 February 2007 - 16:32

Hallo allerseits,

ich habe ein signiertes, funktionierendes MSI, dessen Daten in einer cab-Datei abgepackt sind.

Mein Problem: Zu dem Release sollen nachträglich noch Daten hinzukommen. Ist es möglich das MSI auf diese Daten zugreifen zu lassen ohne das Release neu zu erstellen?

Danke im Voraus!
Joey

kukumar

kukumar
  • Full Members
  • 80 posts

Posted 18 February 2007 - 21:57

Sind das dem MSI Projekt völlig unbekannte Dateien die du hinzufügen willst? Oder andere Versionen der Dateien, die du bereits im Projekt hinzugefügt hast?

joey81

joey81
  • Full Members
  • 12 posts

Posted 21 February 2007 - 13:44

Hi,

zur Zeit des msi-Builds sind die Daten noch nicht vorhanden. Nach dessen Erstellung wird es auf ein Medium gepackt. Auf diesem Medium können sich dann auch jene zusätzlichen Dateien befinden. Wenn dem so ist, sollen sie beim Ausführen des msi in das Installationsverzeichnis kopiert werden.

Fällt jemandem da eine Lösung ein?

ali

ali
  • Full Members
  • 1,008 posts

Posted 21 February 2007 - 14:02

ich würde es vermutlich mit einem Script versuchen, das in dem Verzeichnis auf dem entsprechenden Medium nachschaut ob sich dort Dateien befinden und diese kopiert wenn vorhanden.

joey81

joey81
  • Full Members
  • 12 posts

Posted 21 February 2007 - 17:16

Hi,

versuche mich grad im IScript und habe eine Test-Funktion geschrieben:

#include "ifx.h"
export prototype MyFunction(BYVAL HWND);

function MyFunction(hMSI)

NUMBER nTempSize, nError;
STRING szSource;

begin

SdShowMsg("blub", TRUE);
Delay (3);
szSource = "";
nTempSize = MAX_PATH;
nError = MsiGetProperty(hMSI, "SourceDir", szSource, nTempSize);
end;

Diese habe ich in ein CA eingebunden:

Function Name: MyFunction
Return Processing: Check exit code
In-Script Execution: Immediate Execution
Execution Scheduling: Always Execute
Alles weitere: <Absent from sequence>

Das CA habe ich unter Sequences zwischen ValidateProductID und "CostFinalize" platziert.

Mein Problem: Nachdem mein "Blub" durchaus für 3 Sekunden erscheint, kommt die Installationsroutine nicht in die Gänge. Ich kann lediglich den Cancel-Button betätigen, der nach einer Abfrage (Möchten Sie wirklich beenden...) seinen Geist aushaucht. Mit dem Taskmanager gilt es anschließend 3 msiexec-Prozesse abzuschießen.

Ich habe auch schon versucht alternativ und zusätzlich "Install UI Sequence:" auf "After ValidateProductID" zu setzen.

Testweise habe ich es folgendermaßen umgebastelt:

#include "ifx.h"
export prototype MyFunction();

function MyFunction()
begin
SdShowMsg("blub", TRUE);
Delay (3);
end;

Hier hängt sich die Installationsroutine zwar nicht auf, bricht jedoch sofort ab.

Kann mir irgendwer weiterhelfen?

Edited by joey81, 22 February 2007 - 10:18.


joey81

joey81
  • Full Members
  • 12 posts

Posted 22 February 2007 - 12:40

Hi,

lag scheinbar am SdShowMsg-Befehl.

Nachdem ich nach der Ausgabe und den Delays ein SdShowMsg ("", FALSE); eingefügt hatte, kam ich wieder in die urspüngliche Installationsroutine zurück. Leider wurde meine Ausgabe dabei vernachlässigt, d.h. sie erschien garnicht erst.

Sollte sonstwer auf dasselbe Problem stoßen, empfehle ich als Workaround die gute alte Messagebox: MessageBox ( szMsg, nType ); Die hält, was sie verspricht :-)

Viele Grüße!
joey81