僕は、最近 VS2005 で開発したアプリケーションを配布する場合、
ClickOnce
を主に使っています。
この ClickOnce には、発行するバージョンというものがあります。
発行するバージョンを確認するには、スタートアッププロジェクトのプロパティから「発行」タブを選択します。
この「発行するバージョン」をスプラッシュウィンドウやバージョン情報ダイアログボックスに取得して表示させることができれば、バージョンを一元管理ができそうです。
・・・ということで試してみることにしました。
C#では、以下のように記述します。
using System.Deployment.Application; // 基本的にこの名前空間を使います。
private string GetVersion() {
// ClickOnce でインストールされていない場合は空白を返す。
if (! ApplicationDeployment.IsNetworkDeployed) return String.Empty;
Version version = ApplicationDeployment.CurrentDeployment.CurrentVersion;
return (
version.Major.ToString() + "." +
version.Minor.ToString() + "." +
version.Build.ToString() + "." +
version.Revision.ToString()
);
}
成功すれば、1.0.0.0 のような文字列を取得できます。
但し、この方法が利用できるのは、このアプリケーションが ClickOnce アプリケーションであることが前提です。
この判断を行うのが、ApplicationDeployment.IsNetworkDeployed プロパティの部分です。
上記の場合、開発環境から実行する場合は常に空白を返しますが、一度 ClickOnce によって配置された状態で実行すればバージョンが正しく取得できます。