バージョン

アセンブリバージョン

.NETアセンブリ用のバージョン番号。.NET Frameworkのバージョン管理機能で使われる。このAssemblyVersion属性の値が指定されていなければ、AssemblyFileVersion属性の値が既定値として使われる

ファイルバージョン

AssemblyFileVersion ファイル・バージョン Win32ファイル・システム用のバージョン番号。このAssemblyFileVersion属性の値が指定されていなければ、AssemblyVersion属性の値が既定値として使われる

製品バージョン

AssemblyInformationalVersion 製品バージョン プログラム用のバージョン番号。このAssemblyInformationalVersion属性の値が指定されていなければ、AssemblyFileVersion属性の値が、AssemblyFileVersion属性の値も指定されていなければ、AssemblyVersion属性の値が既定値として使われる

<メジャー・バージョン>.<マイナー・バージョン>.<ビルド番号>.<リビジョン>
バージョン番号の構成
ユーザーに提示するバージョン番号(例えば「.NET Framework 1.0」の「1.0」)は、メジャー・バージョンとマイナー・バージョンを組み合わせた番号である。例えばメジャー・バージョンが「1」でマイナー・バージョンが「0」の場合、ユーザーに提示するバージョン番号は「1.0」である。ビルド番号はプログラムをリリース・ビルドするたびに1つずつ増加させていく番号で、リビジョンは(不具合修正などの理由で)ビルド番号を増加させずにプログラムを改訂する際に増加させる番号である。この4つの番号の組み合わせにより、プログラムのバージョンを管理する。

アセンブリバージョンとファイルバージョンはアセンブリ情報の設定画面に入力する箇所があるけど、製品バージョンはどこで設定するのだろうか?→製品バージョンを設定する箇所なし。AssemblyInfo.vbに直接記述する。
<Assembly: AssemblyInformationalVersion(“2.1”)>

「発行」にもバージョンがあるがこれは何か?
setupにもバージョンがあるがこれは何か?

アップグレード

タイプ Package Code Product Version Product Code
Small Update 変更する 変更しない 変更しない
Minor Upgrade 変更する 変更する 変更しない
Major Upgrade 変更する 変更する 変更する

PackageコードはMSIを作成するたびに自動で更新される。
Product Version はVersionプロパティ
Product Code は ProductCodeプロパティ

DetectNewerInstalledVersion:新しいバージョンのみインストール可能とするか否か
RemovePreviousVersions:古いバージョンを自動で削除するか否か
UpgradeCode:メジャーアップデートの際に古いバージョンと同一製品かどうかを紐づける依りどころ?変えてはいけない?