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

InstallShield zerstört meinen Downgrade-Schutz....


4 replies to this topic

herrbecht

herrbecht
  • Full Members
  • 59 posts

Posted 08 November 2004 - 18:38

Hallo

ich habe folgendes Problem:
Um Downgrades zu verhindern habe ich, wie in der Hilfe unter "How do I prevent an old package from installing over a newer version" beschrieben, Einträge in die MSI-Tabellen gemacht. Jetzt habe ich eben die zweite Version meines Paketes erstellt, bei der der folgender Fehler gemeldet wurde:
CODE
ISDEV : error Val0008: In der Upgrade-Tabelle ist die Aktionseigenschaft 'NEWPRODUCTFOUND' nicht als Mitglied der SecureCustomProperties aufgeführt. Das festgelegte Upgrade funtkioniert möglicherweise nicht richtig.


Das hat mich gewundert, da ich Eigenschaft 'NEWPRODUCTFOUND' eigenhändig in die SecureCustomProperties-Zeile der Property-Tabelle eingetragen habe. Als ich mit Hilfe des Direct Editors in die Property-Tabelle geschaut habe, habe ich statt meines NEWPRODUCTFOUND-Eintrags folgendes gefunden:
CODE
##ID_STRING367##


InstallShield hat meinen Tabelleneintrag durch einen Eintrag in der Sting-Tabelle ersetzt.... mad.gif mad.gif mad.gif WIE KANN ICH SOWAS VERHINDERN?,..... Was mache ich falsch???? InstallShield kann doch nicht einfach meinen Eintrag durch einen String-Tabelleneintrag ersetzten???? Bewirkt die Einstellung "Referenzintegrität erhalten" in den Optionen solches Fehlverhalten von InstallShield????????

Bin wirklich für jede Hilfe dankbar....

Edited by herrbecht, 08 November 2004 - 18:39.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 November 2004 - 08:50

Geh mal in den property Manager und mache einen Rechtsklick auf das property. Ist im Kontext-Menü der Eintrag "Make Localizable" verfügbar? Wenn er disabled ist, dann handelt es sich bereits um eine localizable Property, das seine Daten aus der Stringtabelle bezieht. In diesem Fall lösche das Property, und erstellle ein neues. Achte darauf, dass du NICHT "new localizable property" verwendest.

herrbecht

herrbecht
  • Full Members
  • 59 posts

Posted 09 November 2004 - 14:26

VIELEN DANK für die Infos!!!

ich habe mir das mal im Property-Manager angeschaut. Die Eigenschaft "NEWPRODUCTFOUND" steht da nicht als Property sondern als Wert der Eigenschaft "SecureCustomProperties" Wenn ich auf "SecureCustomAction" rechtsklicke im Property-Manager ist der Eintrag "Make Localizable" verfügbar. Also ist diese Eigenschaft OK. Die Eigenschaft um die es eigentlich geht ist ja auch "NEWPRODUCTFOUND". Die Eigenschaft habe ich in der Upgrade-Tabelle mit Hilfe des DirectEditors erzeugt, genau wie die Einträge in der Property-Table. Ich habe mal in im Direct-Editor über alle Tabellen nach "NEWPRODUCTFOUND" gesucht und tatsächlich einen Eintrag in der "String"-Tabelle gefunden (in der Version 1 meines Programms). Wie verhindere ich, daß ich eine "Localizable Property" erstelle, wenn ich mit dem Direct Editor arbeite?
Es ist doch jetzt wahrscheinlich das beste, wenn ich die Einträge, die ich wegen dem "Downgrade-Schutz" gemacht habe noch mal ganz rauswerfe (inklusive String-Tabelleneintrag) und den Stuff nochmal neu mache? Oder...?
Aber wie kann ich dann sichergehen, daß ich nicht schon wieder "Localizable Properties" erstelle???

Vielen Dank schonmal...

Edited by herrbecht, 09 November 2004 - 14:29.


herrbecht

herrbecht
  • Full Members
  • 59 posts

Posted 09 November 2004 - 17:24

Wie ich befürchtet habe, hat es nix gebracht die Einträge in den MSI-Tabellen zu löschen und neu zu erzeugen (unter strikter Einhaltung der, in dem Hilfetopic beschriebenen Reihenfolge), denn InstallShield hat wieder meine Property in die String-Tabelle geschrieben. Außerdem habe ich versucht die Einträge in der Property-Tabelle statt im DirectEditor im PropertyManager anzulegen, was allerdings auch nichts half. Ich hab den String-Tabelleneintrag jetzt rausgelöscht... und hoffe das das reicht und so funktioniert... oder gibt es da noch Überreste von diesem String-Horror-Eintrag in anderen Tabellen oder so...?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 November 2004 - 19:51

NEWPRODUCTFOUND musst du überhaupt nicht im Property manager eintragen. Es wird zur Laufzeit "on the fly" erzeugt, falls eine entsprechende version gefunden wurde.
In neueren InstallShield-Versionen kann man das ganze übrigens in der Upgrade-Ansicht (unter releases) machen, ohne den Direct Editor zu bemühen.