概要
Windowsのモジュール (exe や dll 等) が持つ、製品バージョンとファイルバージョンについて
違いが説明されている資料を探していたのですが、どうにも日本語でわかりやすい資料が見つからなかったので
Stack Overflow で見つけた分かりやすい回答の翻訳(意訳)を行いました。
元の質問は Delphi についての内容となっていますが、テーマ自体は Windows 全般に通ずるものです。
弁明
英語得意じゃないです。
間違ってるところ、改善すべき点等ありましたらご指摘ください。
原文
delphi - File Version Vs. Product Version - Stack Overflow
質問和訳(意訳)
Delphiプロジェクトのプロパティダイアログには、製品バージョンとファイルバージョンの設定項目があります。
これらの厳密な違いを教えてください。
回答和訳(意訳)
製品バージョンはアプリケーション全体のバージョンです。
ファイルバージョンはコンポーネントそれぞれのバージョンです。
これらは同一のものとして管理されることが多いですが、必ずしも同一である必要はありません。
それはアプリケーションがどのようなモジュールで構成されているかによるでしょう。
例えば、あなたのアプリケーションのバージョンが 2.3.4.0 であるのに対して、
その中の、あるコンポーネントのバージョンは 5.6.7.0 であるケースがあります。
それはここ最近追加された他アプリケーションまたは別バージョン (1.2.0.0) から継承したものでしょう。
さらに言うと、コンポーネントのいくつかはリリース間で変更されないため、
理論上それらのファイルバージョンは保持されるべきです。
しかし、ファイルバージョンが製品バージョンと同一に保たれることは多く、
(少なからず開発者に対して)混乱を引き起こしがちです。