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

Feature nur bei Neuinstallation installieren


11 replies to this topic

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

Posted 12 June 2007 - 17:21

Hallo

Ich arbeite mit IS10.5 an einem Basic-MSI Projekt.

Folgende Frage:
Ein Feature soll nur bei einer Neuinstallation installiert werden. Bei einer Update-Installation nicht.

Wie kann ich das erreichen?

danke im Voraus



ali

ali
  • Full Members
  • 1,008 posts

Posted 13 June 2007 - 08:37

hm, was ist mit neuinstallation gemeint, die Erstinstallation oder nach einem Reinstallieren des Produktes. Welche Art von Update, Major- , Minor- oder Patch?

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

Posted 13 June 2007 - 08:46

Erstinstallation und Major Upgrade

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

Posted 13 June 2007 - 10:13

hat sich erledigt. Lösung gefunden.




cvogel

cvogel
  • Full Members
  • 12 posts

Posted 14 June 2007 - 09:09

und wie war die Lösung?
würde mich auch interessieren!

Merci schonmal

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

Posted 19 June 2007 - 11:16

Es ist keine echt Lösung, leider.

Hintergrund war, ich habe ein Feature, dass keine Dateien sondern nur Registry-Eintraege enthaelt. Diese Registry-Einträge sollen bei einer Upgrade-Installation nicht angefasst werden. Ich habe mir jetzt so beholfen, dass die Action 'WriteRegistryValues' nur bei einer Erstinstallation ausgefuehrt wird.
Das ist weder elegant noch vorausschauend, aber es war für mich jetzt die einfachste Lösung

ali

ali
  • Full Members
  • 1,008 posts

Posted 19 June 2007 - 11:22

so wie sich das anhört, wird das aber zur Folge haben, das beim Change oder beim Reinstallieren des Produktes sprich auch Repair überhaupt keine Regeinträge geschrieben werden.

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

Posted 19 June 2007 - 14:26

die Bedingung, die ich gesetzt habe, ist
'Not <upgrade>', d.h. nur im Fall einer Upgrade-Installation erfolgen keine Registry-Eintraege.

Für Tips, wie ich das ganze über eine Bedingung im Feature abwickeln kann, bin ich dankbar

ali

ali
  • Full Members
  • 1,008 posts

Posted 19 June 2007 - 14:41

mit einer Bedingung im Feature wird das nicht gehen, soweit ich weiß schaut der Installer bei einem Minor oder Patch Update da gar nicht drauf, sondern nur was lokal installiert wurde. Aber bei einem Minor oder Patch Update ist doch soweit mir bekannt standardmäßig der REINSTALL=ALL gesetzt. Wenn man hier im den Releaseinstellungen den REINSTALL=Feature1,Feature2 usw. setzen würde, also auf die Feature die aktualisiert werden sollen, müsste das doch auch gehen.

Aus meinem kleinen Schulungsleitfaden:

"If the update contains features that you do not want to Update, you should set REINSTALL to a comma-separated list of the features that you do want to update.

msiexec.exe /i product.msi REINSTALLMODE=voums REINSTALL=F1,F2,F3

The Feature names you use in the REINSTALL property are case-sensitive."

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

Posted 19 June 2007 - 16:51

Und für einen Major Upgrade ist sowas nicht vorgesehen ?

ali

ali
  • Full Members
  • 1,008 posts

Posted 20 June 2007 - 08:04

wenn du bei einem Major Upgrade nicht möchtest das ein Feature installiert wird, bei einer Erstinstallation aber sehr wohl, dann kannst du das Feature in den Dialogen mit der Bedingung IS_MAJOR_UPGRADE entfernen, oder eine CA mit dem Property REMOVE = FeatureName, oder du gibst diese Bedingung in den Bedingungen für das Feature oder auch der Komponente an. Das sollte gehen.
Wenn du bei einem Major Upgrade möchtest, das ein Feature der Vorgängerversion nicht mit entfernt wird, kannst du das in der Release Einstellung angeben.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 20 June 2007 - 08:52

Du könntest über die Systemsuche die vorhandenen Registry-Einträge auslesen und in einem Proiperty speichern. Dieses Property gibst du dann in der Registry-Ansicht an, so dass die gleichen Werte wieder zurückgeschrieben werden.