web-dev-qa-db-ja.com

C#アプリのバージョンを取得しますか?

デスクトップアプリケーションに取り組んでいます。セットアップを作成しました。

例私のアプリケーション。バージョンは1.0.0です。

1.0.0であるデスクトップアプリケーションの現在のバージョンを取得したい。 Application.ProductVersionを使用して試しましたが、コントロールのバージョンを提供します。 (DevExpress Control15.2.7を使用しているため、現在のバージョンを15.2.7として提供します)。

インストールされているアプリケーションの現在のバージョンを取得するにはどうすればよいですか?これをインストール済みのバージョンと比較して、製品に「利用可能な新しいバージョン」機能を提供したいと思います。

17
Nanji Mange

探している情報はAssemblyInfo.csにあります。

実行時にそこに書き込まれた情報にアクセスするには、_System.Reflection.Assembly_を使用できます。

System.Reflection.Assembly.GetExecutingAssembly()を使用してアセンブリを取得するか(このコード行が含まれる)、またはSystem.Reflection.Assembly.GetEntryAssembly()を使用して取得しますプロジェクトが開始したアセンブリ(ほとんどの場合、これはアプリです)。

マルチプロジェクトソリューションでは、これは心に留めておくべきことです!

_string version = Assembly.GetExecutingAssembly().GetName().Version.ToString()
// returns 1.0.0.0
_

対応するAssemblyInfo.cs

AssemblyInfo.cs

対応するEXE-properties

EXE properties

これ は、InstallShieldを使用する場合に重要な場合があります(コメントを参照)!

25
Felix D.
System.Reflection.Assembly executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
var fieVersionInfo = FileVersionInfo.GetVersionInfo(executingAssembly .Location);
var version = fieVersionInfo.FileVersion;
3
Nitin