0

概念実証の MSI インストーラーで xml ファイルを作成し、新規インストールで必要に応じて要素を更新することに成功しました。私は 6 つの機能を持っています。機能がインストールされるように選択されている場合、その機能用に作成されたノードと、プロパティに基づいた属性セットが必要です。

インストールを変更し、以前にインストールされた機能を削除する場合、そのために作成された xml ノードを保持し、インストール時に設定した属性を同じプロパティ (現在は異なる値) に基づいて更新するように設定したいと考えています

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

機能を削除すると、CA ISXmlUnInstall が実行されますが、そのアクションはノードを削除するか、そのままにしておくだけのようです...

4

1 に答える 1

2

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

また、実際のプロパティにまだ値がない場合にのみ、一時プロパティに読み込まれ、実際のプロパティに割り当てられるパターンをサポートすることも検討してください。そうすれば、誰かがサイレント インストール ( upgrade ) を実行し、以前に構成されたものに対するオーバーライドとしてプロパティを渡すことができます。(検索による破壊なし)

于 2012-02-16T18:07:13.577 に答える