813

2AssemblyInfoつのアセンブリバージョンがあります。

  1. AssemblyVersion:帰属するアセンブリのバージョンを指定します。
  2. AssemblyFileVersion:Win32ファイルバージョンリソースに特定のバージョン番号を使用するようにコンパイラに指示します。Win32ファイルのバージョンは、アセンブリのバージョン番号と同じである必要はありません。

Assembly Version次のコード行でを取得できます。

Version version = Assembly.GetEntryAssembly().GetName().Version;

しかし、どうすれば入手できAssembly File Versionますか?

4

5 に答える 5

935

あなたが本当に欲しいものについての説明を求める上記の私のコメントを参照してください。うまくいけば、これはそれです:

System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
System.Diagnostics.FileVersionInfo fvi = System.Diagnostics.FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
于 2009-05-26T08:26:47.110 に答える
252

アセンブリファイル、および製品の 3つ のバージョンがあります。それらは異なる機能で使用され、明示的に指定しない場合は異なるデフォルト値を取ります。

string assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); 
string assemblyVersion = Assembly.LoadFile("your assembly file").GetName().Version.ToString(); 
string fileVersion = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion; 
string productVersion = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion;
于 2009-10-22T08:51:44.977 に答える
77

アプリケーションファイルのバージョン([アセンブリ情報]-> [ファイルバージョン]で設定されているもの)にアクセスする場合、たとえば、フォームの読み込み時にラベルのテキストを設定してバージョンを表示する場合は、次を使用します。

versionlabel.Text = "Version " + Application.ProductVersion;

このアプローチでは、への参照が必要System.Windows.Formsです。

于 2013-02-25T17:11:17.183 に答える
28

更新:私の引用した投稿、@Iainと@DmitryLobanovでRichardGrimesが述べたように、私の答えは理論的には正しいですが、実際には間違っています。

数え切れないほどの本などから覚えておくべきだったのですが、これらのプロパティをを使用して設定する[assembly: XXXAttribute]、コンパイラによってハイジャックされ、VERSIONINFOリソースに配置されます。

上記の理由から、@ Xiaofuの回答のアプローチを使用する必要があります。これは、属性から信号が抽出された後に属性が削除されるためです。


public static string GetProductVersion()
{{
  var attribute =(AssemblyVersionAttribute)Assembly
    .GetExecutingAssembly()
    .GetCustomAttributes(typeof(AssemblyVersionAttribute)、true)
    。独身();
   attribute.InformationalVersionを返します。
}

http://bytes.com/groups/net/420417-assemblyversionattributeから-そこに記載されているように、別の属性を探している場合は、それを上記に置き換えてください)

于 2009-05-26T08:24:48.627 に答える