メジャーアップグレードを行うとアップグレードの完了後、特定のファイルが削除されてしまいます。
対象製品:InstallShield 2008 以降
対象プロジェクト:基本の MSI , InstallScript MSI プロジェクト
[概要]
メジャーアップグレード後に特定のファイルが削除されてしまう場合、以下の原因が考えられます。
<ケース1>
メジャーアップグレードの設定が「新規セットアップをインストールする前に、以前のセットアップを完全にアンインストールする」
に設定されており、かつ既存のファイルと同じもしくは低いバージョンのファイルを転送している
例:
ターゲットシステム上に存在する旧製品のファイル AAA.exe(Ver 1.5)をメジャーアップグレードインストーラにより AAA.exe(Ver 1.0)に更新する場合
<ケース2>
メジャーアップグレードの設定が「セットアップをインストールし、不要なファイルを削除する」に設定されており、同階層へ同名ファイル
を転送するコンポーネントのコンポーネントコードが旧インストーラと新インストーラで異なってしまっている
例:
旧インストーラでの設定:
コンポーネント「CompA」 コンポーネントコード「{01CC3DFC-C63F-4AC6-9889-BB916D2B1B82}」インストール先「C:\Test\AAA.exe」
新インストーラでの設定:
コンポーネント「CompA」 コンポーネントコード「{8489EC8F-C120-4936-8366-C8EBF623C3DD}」インストール先「C:\Test\AAA.exe」
<ケース3>
他のアプリケーションにより読み込みが行われる形式のファイル( png,pdf 等)が使用中の状態で、メジャーアップグレードが実行された
例:
旧インストーラ・新インストーラの両方に含まれるファイル AAA.pdf が PDF リーダ等により開かれている状態で、
メジャーアップグレードを実行した (※ 厳密には、再起動後に該当の PDF ファイルが削除されてしまいます )
[回避方法]
以下の方法により回避を行ってください。
<ケース1>
削除されてしまうファイルに対して「常に上書きする」設定を行う
1. [編成]-[ファイルとフォルダー]ビューにて、該当のファイルを右クリックして、[プロパティ]を選択します
2. [常に上書きする]チェックボックスにチェックを入れます
※ 同[ファイルとフォルダー]ビューにて、Shiftキーを押した状態で任意の複数ファイルを選択した場合、
選択された複数のファイルに対して一度に上書き設定を行うことも可能です
<ケース2>
コンポーネントコードを旧インストーラ・新インストーラで統一させる
1. 旧インストーラのプロジェクトを開きます。[編成]-[コンポーネント]ビューにて消失が発生する
ファイルを含むコンポーネントを選択します。
2. 右のビューにてコンポーネントコードを記録します
3. 新インストーラのプロジェクトを開きます。[編成]-[コンポーネント]ビューにて該当のコンポーネント
に対して記録したコンポーネントコードを設定します。
<ケース3>
・すべての起動しているアプリケーション終了させた上で、メジャーアップグレードを実行する
・新バージョンインストーラの INSTALLDIR を旧バージョンインストーラと異なる値に変更する
例:
旧バージョンのインストール先「C:\Program Files\Networld\MyApp 1.0」
新バージョンのインストール先「C:\Program Files\Networld\MyApp 2.0」