ホーム

私訳です。より確かな記述は MSDN (英語)を直接読んで下さい。

 

MSDN > MSDN Library > Win32 and COM Development > Administration and Management > Application Installation and Servicing > Windows Installer > About Windows Installer > File Versioning Rules

ファイルバージョニング(ファイルバージョン管理) ルール


どのインストーラーも根底は ファイルの実際のインストールです。ファイルをインストールすべきか どうかを決める事は 複雑なプロセスです。最も高いレベルでは、この決定は ファイルが属する コンポーネントがインストール用にマークされているかどうかに かかっています。ひとたび ファイル はコピーされるべきと決定されると、もしターゲットフォルダー中に同じ名前を持つ別のファイルが あると プロセスは面倒です。そんな状況では、決定を下す事は 以下のプロパティを必然的に含む 一連のルールを必要とします:

インストーラーは、同じ名前を持つファイルが既に含まれている場所にファイルをインストール しようとしている時に これらのルールを使うだけです。この場合には、Windows Installer は、 インストールすべきかどうかを決めるのに 以下のルール、その他すべての同等なものを使用します。

最も高いバージョンが勝つ - コンピューター上のファイルが最も高いバージョンを持っていてさえ、 その他すべての同等なもの、最も高いバージョンを持つファイルが勝つ。

バージョン付けされたファイルが勝つ - バージョン付けされたファイルが バージョン付けされて いないファイルに優先して インストールされる。

プロダクト言語に味方する - もしインストールされているファイルがコンピューター上のファイルと 違う言語を持っているとしたら インストールされているプロダクトに一致する言語を持つファイルに 優位に働く。言語-ニュートラルなファイルは ただ別の言語として扱われるので インストールされて いるプロダクトが再び味方される。

不適切に組み合わされた複数の言語 - インストールされているファイルとコンピューター上のファイル との間で何か共通言語を因数分解した後、インストールされているプロダクトによって何が必要と されているかに従って そのままである言語が味方される。

スーパーセット言語を保存する - 既にコンピューター上にあるかインストールされているかどうかに 関係なく 複数言語をサポートするファイルを保存する。

バージョン付けされていないファイルがユーザーデータである - もしコンピューター上のファイルに 関して更新日時が作成日時より後なら、ユーザーカスタマイズが消去されるので ファイルをインストール しない。もし更新と作成日時が同じなら、ファイルをインストールする。もし作成日時が更新日時より 後なら、ファイルは変更されていないとみなされ ファイルをインストールする。

Companion File のインストールは、それ自身のファイルバージョニング情報にはかかわらず、 その Companion parent のバージョニングによって決まります。Companion File の場合には、 親ファイルがより高いバージョンを持っている場合にだけ インストールがスキップされます。

そのコンポーネントの為のキーパスであるファイルは companion file であってはいけない という事に 注意して下さい。なぜなら、それは companion parent file によって決定されているキーパス ファイルのバージョニングロジックに帰結するからです。

Companion File を使っている バージョン付けされていないファイル - コンパニオンメカニズムを 使ってバージョン付けされたファイルに結び付けられた バージョン付けされていないファイルは、 バージョン付けされたファイルの為のルールに従います。唯一の例外は、コンピューター上の バージョン付けされたファイルとインストールされているバージョン付けされたファイルとが 同じ バージョンと言語を持つけれど companion file がコンピューター上に欠けている場合です。 その場合には、たとえコンピューター上でバージョン付けされたファイルが使われていても、 インストールされている companion file が使用されます。さらに加えて、もし REINSTALLMODE プロパティが 古いバージョンを上書きするオプション ("o" か "e") を含んでいて companion file のバージョンが既にマシン上にあるファイルと等しいなら、 companion file を使っているバージョン付けされていないファイルがインストールされます。

ルールはグローバルである - ファイルをインストールする時の決定の為のルールは インストーラー 内の一箇所に存在し グローバルである。これは すべてのファイルに等しく適用される事を意味して います。

ファイルバージョンの為に使われている書式の例に関しては、 Version データ型を見て下さい。より具体的な情報に関しては、 Replacing Existing Files Default File Versioning を見て下さい。