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

ungewollte Komponenten-Abhängigkeiten


8 replies to this topic

Thomas Hübner

Thomas Hübner
  • Full Members
  • 25 posts

Posted 01 December 2009 - 11:20

Hallo,

ich habe ein sehr seltsames Phänomen mit Installshield 2010 Premier:

Nach dem Bauen des Projektes erhalte ich Abhängigkeiten zwischen den Komponenten, die So nicht existieren dürften. Was dann zur Folge hat, dass wenn man eine Feature auswählt, Dateien von einem anderen Feature installiert werden, welches aber nicht ausgewählt war.

Um es mal an einen Beispiel zu Verdeutlichen:

Feature A
---Component A1
---Component A1
Feature B
---Component B1
---Component B1
Feature C
---Component C1
---Feature D
------Component D1

Wenn ich nur Feature D installieren möchte, werden auch (obwohl nicht ausgewählt) Dateien der Komponente B1 installiert.

Ein Blick in die fertig MSI mit dem Programm InstEd zeigt mir, dass in der Tablle FeatureComponents zusätzliche Abhängigkeiten zu der Komponente B1 eingetragen sind. Leider finde ich nirgends diese Abhängigkeit im Programm. Wenn ich dort beim DirectEditor in die Tabelle FeatureComponents schaue, sieht alles in Ordnung aus.

Wie kommen diese zusätzlichen Abhängigkeiten in die fertige MSI rein? Ich habe heute bereits, das SP1 installiert, hat aber keine Änderungen gebracht. Und wenn ich die Komponenten lösche und später neu anlegen möchte, dann sind die Abhängigkeiten auf andere Komponenten.

Ich bin für jede Hilfe dankbar, die das Problem lösen kann. smile.gif

Viele Grüße
Thomas Hübner

Edited by Thomas Hübner, 01 December 2009 - 11:22.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 01 December 2009 - 18:59

Seltsam. Im Setup Design View sieht alles gut aus?

Thomas Hübner

Thomas Hübner
  • Full Members
  • 25 posts

Posted 02 December 2009 - 08:43

Hallo Stefan,

ja, in der Setup-View sieht alles ok aus. Dort habe ich einen schönen normalen Baum ohne irgendwelche rekursiven Querverweise (falls sowas überhaupt möglich ist). Die zughörigen Komponenten sind auch eindeutig, d.h. sie sind nicht in beiden Features vorhanden.

Wenn ich dann mit InstEd mir die Tabellen anschaue, sehe ich, dass in dem einen Feature eine Komponente aus einem anderen ist. Das erklärt dann auch, warum die Dateien mit installiert werden.

Ich habe auch schon versucht, das entschrechende Feature zu löschen und neu anzulegen. Aber dann war die Abhängkeit auf ein anderes Feature. Und ich möchte ungern das ganze Projekt neu anlegen müssen.

Viele Grüße
Thomas Hübner


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 02 December 2009 - 13:31

Das ist seltsam, klingt fast als ob vielleicht die Projektdatei beschädigt ist. Hast du mal die .ism Datei direkt angeschaut? Wenn du das binäre Projektformat gewählt hast, geht das mit einem MSI-Editor wie Orca oder InstEd. Beim XML-Format mit einem Texteditor. Aber bevor du das Format evtl. umstellst mach eine Sicherheitskopie!

Thomas Hübner

Thomas Hübner
  • Full Members
  • 25 posts

Posted 03 December 2009 - 08:51

Ich verwende seit Anfang an das XML Format. Dort habe ich auch schon rein geschaut. In der Tabelle FeatureComponents stehen nur die drin, die ich auch wirklich eingetragen habe.

Ich sollte noch dazu sagen, dass bei den besagten Feature eine Datei auch von einen anderen Feature installiert werden soll. Diese ist eine Konfig-Datei und liegt in einen anderen Folder. Ich habe dafür 1 Komponente verwendet, die von 2 Feature installiert wird. Aber diese Komponente ist es nicht, die nach dem Bauen zusätlich eingetragen wird.

Viele Grüße
Thomas Hübner

Edited by Thomas Hübner, 03 December 2009 - 08:52.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 December 2009 - 17:44

Das Build Log gibt wahrscheinlich auch keine Hinweise? Kann es an einem Merge Modul liegen? Eine Validierung bringt vermutlich auch nichts.

Thomas Hübner

Thomas Hübner
  • Full Members
  • 25 posts

Posted 04 December 2009 - 17:06

Das Problem hat sich erledigt.

Es lag daran, dass bei einigen Komponentn ich dynamisches File-Linking verwendet habe und in der gleichen Komponente eine Datei als Key-File definiert habe (z.B. für einen Shortcut oder einen Windows-Service).

Nachdem ich die Key-Files in seperate Komponenten ausgelagert habe funktionierte es. biggrin.gif


Viele Grüße
Thomas Hübner

Thomas Hübner

Thomas Hübner
  • Full Members
  • 25 posts

Posted 02 June 2010 - 11:12

QUOTE (Thomas Hübner @ 2009-12-04 17:06)
Das Problem hat sich erledigt.

Also irgendwie funktioniert es doch noch nicht richtig. Ich versuche nochmal die Situation zu erklären:

Ich habe folgende Struktur:

Feature Client
--Komponente Client.client
----Files: Dynamisch aus einen Folder mit Unterverzeichnissen (mit Ausnahme programm.exe)
----Ziel: Installdir\client\
--Komponente Client.client_programm.exe
----File: programm.exe (als Keyfile)
----Ziel: Installdir\client\
----Shortcut auf programm.exe

Feature Modul
--Komponente Modul.tool
----Files: Dynamisch aus einem Folder (mit Ausnahme modul.exe)
----Ziel: Installdir\tools\
--Komponente Modul.tool_modul.exe
----File: modul.exe
----Ziel: Installdir\tools\
----Shortcut auf modul.exe

Wenn ich nur das Feature Modul installiere (ohne Client), wird trotzdem die Exe Datei (programm.exe) und somit auch der Shortcut installiert, obwohl ich es nicht angewählt habe und keine Abhängigkeit im Projekt besteht.

Ein Blick mit InstEd It! auf die erstellte MSI Datei zeigt mir, dass in der Tabelle FeatureComponents die zusätliche Abhängigkeit vom Feature Modul auf die Komponente Client.client_programm.exe eingetragen ist. Ich weiß nicht, wo diese Anhängigkeit her kommt. Die gleiche Abhängigkeit dieser Komponente (die nicht installiert werden sollte) besteht auch zu anderen Fetures, die ich der einfachheithalber hier nicht aufgeführt habe.

Das Log gibt mir auch keinen Aufschuss warum dies geschieht. Ich hatte mal das Problem, dass ich MergeModule definiert habe, weil die gleiche Sourcen in verschiedenen Projekten verwendete werden sollen. Dabei kamen auch die seltsamsten Abhängigkeiten zustande, die so nicht existieren dürften.

Kann man das automatische Hinzufügen von Abhängigkeiten irgendwie ausschalten? Oder woran kann das Problem liegen?

Vielen Grüße
Thomas Hübner

Edited by Thomas Hübner, 02 June 2010 - 11:28.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 08 June 2010 - 08:42

In den Compnent-Einstellungen kann man den .NET Abhängigkeitsscan abschalten, aber ich denke nicht, dass es das ist. Wie sieht denn die FeatureComponent Tabelle im Direct Editor von InstallShield aus? Und im Setup Design View wird die Komponente Client.client_programm.exe nicht unter dem Feature Modul angezeigt?