17

アセンブリ、ファイル、およびアセンブリ情報のバージョンに関するスレッドをここで読みました。

パブリッシュ版がどこに収まるか知りたいのですが、その結果...

string thisAppsVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

...AssemblyVersion のようです。今までは、展開クラスで公開バージョンを使用してきました。

ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment;
Version thisAppsVersion = deployment.CurrentVersion;

...しかし、これはアプリがインストールされていないと利用できません。リビジョンを自動的にインクリメントするオプションがあるのが気に入っています。

ネットワークにデプロイせずに公開バージョンを入手する方法はありますか? それはアプリのバージョンの「公の顔」であるべきですか?

例:UI版(公開版をひねったもの)

前もって感謝します!

グレッグ

4

1 に答える 1

27

バージョンが異なれば目的も異なると思います。

1) AssemblyVersion は、CLR がアセンブリを読み込んでバインドするためのものです。これは開発者にとっては便利ですが、エンドユーザーにとっては便利ではありません。

2) FileVersion または AssemblyFileVersion は、Windows が実行可能ファイルのバージョンとして表示したものです。これは、同じ Win32 アプリケーションのバージョンです。このバージョンは、システムとインストーラーがどちらのバージョンが新しいかを判断するために使用されます。

3) PublishVersion は、展開パッケージのバージョン管理に使用されます。発行バージョンが異なる同じバイナリを 2 回発行しても問題ありません。

4) エンドユーザーに表示するバージョンは、さらに別のバージョンです。製品版などと呼んでください。ビジネス目的などで、上記のいずれとも異なる場合があります。.NET 組み込みサポートを使用する場合は、AssemblyInformationalVersionAttributeを参照 してください。

単純なケースでは、FileVersion を製品バージョンとして使用できます。しかし、公開版は私には良い考えではありません。

于 2010-01-20T09:20:21.167 に答える