• 締切済み

Install Shield 2008でアンインストール時、特定ファイルを消さない方法を教えてください

Install Shield 2008でsetupファイルを作成しました。 インストールすると、特定ファイルはフォルダを作り そのフォルダ内にファイルが作成されます。 ファイルは書き換えが行われるデータファイルです。 アンインストールを行うと、ファイル名が同じなことから 消されてしまうようです。当然というば当然なんでしょうが。。。 この特定のファイルは消さないような方法、設定等はありませんか。 ご教授ください。よろしくお願いいたします。

みんなの回答

noname#79016
noname#79016
回答No.1

インストール シールドについては知りませんので、詳しいかたからの回答が待たれますが、ご希望の処理は msi ファイルの Component テーブルにあるご希望のファイルについて Attributes 属性として msidbComponentAttributesPermanent (16) も指定することで実現できます。 『Orca データベース エディタを使用して Windows インストーラ ファイルを編集する方法』 http://support.microsoft.com/kb/255905/ja の手順で Orca を導入してください。 msi ファイルを 右 クリックして、表示されたメニューから 「Edit with Orca」 を選んでください。 File Table の FileName 列から、残しておきたいファイル名を見つけて、その Component_ の値を Component Table 『Component Table』 http://msdn.microsoft.com/en-us/library/aa368007(VS.85).aspx の Component 列から見つけて、その要素の Attributes 列の値に 16 を加えてください。 ビルドするごとに手作業でなおすのは面倒だというのであれば MsiOpenDatabase()、MsiDatabaseOpenView()、MsiViewExecute() などの関数と SQL 風の命令を使って msi ファイルを編集するプログラムを書くこともできます。

eijikun
質問者

お礼

大変参考になりました。 確認をして試してみます。 ありがとうございます。

関連するQ&A