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:
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.
InstallShield zerstört meinen Downgrade-Schutz....
Started by
herrbecht
, Nov 08 2004 18:38
4 replies to this topic
Posted 08 November 2004 - 18:38
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.... 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.
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.
Stefan Krüger
InstallSite.org twitter facebook
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...
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.
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...?
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.
In neueren InstallShield-Versionen kann man das ganze übrigens in der Upgrade-Ansicht (unter releases) machen, ohne den Direct Editor zu bemühen.
Stefan Krüger
InstallSite.org twitter facebook