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

Frage zu Features und Mergemodulen


3 replies to this topic

raimundf

raimundf
  • Full Members
  • 13 posts

Posted 19 April 2007 - 17:47

Ich habe 2 Mergemodule SmAudio und SmRec. Beide installieren je ein ActiveX Control. COM Extract ist auf Yes bei beiden Mergemodulen.
Das SmRec MSM braucht auch die SmAudio, daher hatte ich eine Module dependency auf das SmAudio MSM.
Die Registrierung funktioniert eigentlich, allerdings scheints an einem Problem zu scheitern:

Das Setup besteht aus 2 Features:
Feature1 bindet das SmAudio MSM ein.
Feature2 bindet das SmRec MSM ein.

Das ist gut so, den der Kunde kann auch nur das Audio COM Control (Feature1) wollen, will er aber das Recorder ActiveX benutzen soll er Feature 2 auswählen.

Die Registerung des AudioCOM ist ok wenn Feature 1 und sonst nix ausgewählt ist. Alle Regkeys sind vorhanden.

Wähle ich aber Feature 2 aus (und Fetaure 1 nicht), dann wird das SmRec ok registriert, das Audio COM aber nicht (es fehlen ein paar Registrykeys!).

Das Ganze funktioniert wenn ich feature 2 als Subfeature von Feature 1 mache.
Allerdings habe ich auch die Dependencies in den MSMs weggetan, den die brauch ich hier nicht mehr. Feature 1 wird ja autoamtisch installiert wenn SubFeature 2 ausgewählt wird.

Meine Frage: Warum geht der erste beschriebene Fall nicht? Darf man ein MSM immer nur in einem Feature plazieren?





Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 April 2007 - 18:30

Im Prinzip darf eine Komponente in mehreren Features verwendet werden. Nur wenn du die COM-Tabellen (Class etc.) verwendest, dann funktioniert das nicht, denn diese Einträge werden immer nur an ein einziges Feature gebunden.
Es gibt zwei Lösungsmöglichkeiten:
Komponente nur in ein Feature einbauen und die Feature-Hierarchie so aufbauen dass die Komponente immer installiert wird wenn sie benötigt wird.
Oder du verwendest nicht die Class etc. Tabellen sondern die Registry-Tabelle.

raimundf

raimundf
  • Full Members
  • 13 posts

Posted 20 April 2007 - 13:33

Ok ich habe mein Projekt testhalber mal so umgeändert daß ich die COM Extract Option auf No setze und die Registryinfos über RegSpyUI ermittle und in ein Reg file speichere. Das File wird dann zur Buildzeit dazugemerged.
Dann funktioniert alles.
Eignetlich kann man damit leben, den auch bei COM Komponenten deren Regkeys sich ändern kann man im Buildprozess vorher RegSpyUI silent aufrufen um die Registryinfos zu holen.

Aber gibts noch einen anderen Weg dem Installer / InstallShield zu sagen daß ich die Registryinformation nur in der Registrytable haben will und nicht in der Class/ProdId etc. Table?



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 23 April 2007 - 09:22

Ich glaube nicht.