Moduleproblem beim WiX 2.0

16/11/2007 - 00:13 von Thomas Steinbach | Report spam
Hallo NG,

ich will nochmal mein Modulproblem zur
Sprache bringen, da ich einfach nicht
weiterkomme. Hat jemand ein wirklich
funktionierendes Beispiel fuer wix 2.0?
Ich wuerde mich ueber eine entsprechende
Mail an meine Addy freuen. Es koenne ruhig
ein paar MB sein, habe genug Speicherplatz.

Hauptsache ich sehe mal ein funktionierendes
Minimalbeispiel mit Modulen und wenn
es geht auch mit Fragmenten. Danke

Zur Errinnerung:

wenn ich mich an das Tutorial auf:
http://www.tramontana.co.hu/wix/ halte oder auch
nach der WiX Hilfe (chm), dann bekomme nach einem

"light -out prduct.msi prduct.wixobj"

beim "Modularisieren" folgende Fehlermeldung:

D:/install/product.wxs(135) : fatal error LGHT0034: Cannot
open merge module 'Module' at path 'product_lib.msm'.

dabei habe ich a) beide Dateien in genau der angegebenen
Schreibweise, b) beide im gleichen Verzeichnis und die
in der *.wxs und *.msm angegebenen Dateien sind auch
vorhanden.

Warum aber kann der Linker die datei "product_lib.msm"
nicht finden?

in der wxs steht zum Einbinden

snip
[...]
<Directory Id='INSTALLDIR_LIB' Name='lib'>
<Component Id='libModule' Guid='
16CBE786-B8D4-418C-81B6-CEED1F761705'>
[...]
</Component>
<Merge Id='MyModule' Language="1033"
SourceFile='product_lib.msm' DiskId='1' />
</Directory><!-- end of lib -->
[...]
<MergeRef Id='MyModule' />
[...]
snap

und in der msm steht
snip
[...]
<Component Id='orgModule_CMP'
Guid='16CBE786-B8D4-418C-81B6-CEED1F761708>
<File Id='test_dll' Name='test.dll' Source='lib/test.dll' />
</Component>
[...]
snap

Sobald ich das "merge-" betreffende loesche, bzw.
auskommentiere, laeuft alles durch.
Aber sobald ich das versuche zu Modularisieren, geht
es nicht und findet WiX das merge Module nicht :-(

Irgendwas muss ich hier wohl uebersehen
und ich kann den Fehler nicht ausmachen...

Kennt das jemand und weiss was da ein Anfaenger
typischerweise vergisst bzw. falsch macht?

Thomas
 

Lesen sie die antworten

#1 René König
16/11/2007 - 02:26 | Warnen spam
Hallo!

Das ist sicherlich ein Problem mit dem Arbeitsverzeichnis (Current
Working Directory, CWD). Ich vermute mal, dass light nicht im selben
Verzeichnis liegt wie Dein prduct.wixobj und das Du den Pfad zu light in
Deinen Suchpfad %PATH% eingetragen hast.

Wenn dem so ist und Du den Linker anstartest, wird im Verzeichnis von
light.exe (in diesem Szenario das CWD) und eben im Suchpfad nach Deinem
Modul gesucht, nicht aber in Deinem Projekt-Verzeichnis.

Eine mögliche Abhilfe: Du startest light mit einem absoluten Pfad aus
Deinem Projekt-Verzeichnis heraus. In diesem Fall sollte das CWD das
aufrufende Directory bleiben:

D:\install\>C:Programme\WiX\light.exe -out prduct.msi prduct.wixobj

Eine andere mögliche Abhilfe: Du gibst den Pfad zum Modul absolut an:

<Merge Id='MyModule' Language="1033"
SourceFile='D:\install\product_lib.msm' DiskId='1' />


Gruß,
René

Ähnliche fragen