2012-02-16 9 views
0

実証済みのMSIインストーラがxmlファイルを作成し、新規インストール時に必要な要素を更新することに成功しました。 機能がインストールされるように選択されている場合、6つの機能があります。その機能用にノードを作成し、プロパティに基づいて属性を設定します。InstallShield2010修正とアンインストール時のXMLファイルの変更

インストールを修正して以前にインストールした機能を削除した場合、そのために作成されたxmlノードをそのまま残しておきます。私はインストール時に設定した属性を同じプロパティ異なる値を持つ)。

InstallShieldの既存の機能を利用してこれを行うことは可能ですか?それは可能性があり、機能を削除するときに私のXMLを更新するためのカスタムアクションを書くのを避けているようだ。 isxmlcfg.dllとその中のカスタムアクションについては、あまりドキュメントがないようです。

私は機能を削除すると、CA ISXmlUnInstallが実行されている

- しかし、すべて、そのアクションは、ノードを削除するか、それを残しているん表示されます...

答えて

2

あなたはおそらく発生している問題は事実であるあなたが使用ものの、そのプロパティ(例えば、registery、ini、またはxml)のWindowsインストーラは、データベースのプロパティをネイティブに保持しません。あなたはこれをあなた自身でしなければなりません。したがって、修復、変更、アップグレードなどを行い、同じプロパティデータを使用する場合は、それを何か(xmlなど)に保存する必要があるだけでなく、腐食性のAppSearch(XmlSearch)も必要です。プロパティに戻すことができるので、UI中に表示される値を持ち、後でXMLに書き戻すことができます。

また、実際のプロパティに値がない場合にのみ、一時プロパティに読み込まれ、実際のプロパティに割り当てられるパターンをサポートすることも検討してください。そうすれば、誰かがサイレントインストール(アップグレード)を行っていて以前に設定したものに上書きすることができます。 (検索でぶつかりません)

+0

プロパティに関する優れたアドバイス。それで、自分のカスタムアクションをシーケンス化し、アンインストール時に実行するように条件を決めて、私は働いています。私はCAを作ることを避けたいと思っていましたが、時間がなくなりました。 – thekbb

関連する問題