2013-02-28 21 views
24

WebアプリケーションにはAssemblyInfo.csというファイルがありますが、同じソリューション内に他のプロジェクトがあります。それらは主にクラスライブラリです。私はAssemblyInfo.csからアセンブリバージョンを私たちのUIに表示するように言われています。私はC# AssemblyFileVersion usage within a programAssemblyInfo.csからアセンブリバージョンを取得する

using System.Reflection; 
Version version = Assembly.GetExecutingAssembly().GetName().Version; 

または

using System.Reflection; 
using System.IO; 

FileVersionInfo fv = System.Diagnostics.FileVersionInfo.GetVersionInfo 
           (Assembly.GetExecutingAssembly().Location); 

Console.WriteLine("AssemblyVersion : {0}", 
     Assembly.GetExecutingAssembly().GetName().Version.ToString()); 

Console.WriteLine ("AssemblyFileVersion : {0}" , 
     fv.FileVersion.ToString()); 

からSOに以下の解決策を見つけた。しかし、これは私を少し混乱します。それはGetExecutingAssembly()と他のクラスライブラリから別のアセンブリで実行されている場合はどう?これらのコードはいつでもWebプロジェクトに常駐しているAssemblyInfo.csファイルからフェッチされますか? (これは私が欲しいものです)

+0

http://stackoverflow.com/questions/2724546/how-to-get-assembly-version-not-file-version-for-another-exeこの質問会談任意のアセンブリのバージョンを取得します。 –

+0

ありがとうございます。しかし、私は 'AssemblyInfo.cs'から必要なアセンブリを必要とせず、そこから来ていることを確認したいと思います。 – Tarik

答えて

22

ドキュメントでは、Assembly.GetExecutingAssembly()は、呼び出しコードがコンパイルされたアセンブリを取得します。

より明示的(高速)にしたい場合は、が探しているプロジェクトのタイプであれば、typeof(SomeType).Assemblyと書くことができます。

+1

次に、いつでもWebアプリケーションのAssemblyInfo.csからアセンブリバージョン情報を取得する方法を教えてください。私は必要なフィールドがそこから来ていることを確実にしたい。 – Tarik

+1

@タリク:そのプロジェクトの任意のタイプを使用します。 – SLaks

+0

この回答は私に次の(VB)コードにつながった: 'New ApplicationServices.AssemblyInfo(Reflection.Assembly.GetExecutingAssembly())' – CrazyIvan1974

-1

ファイルを読み込む場合は、これを行うことができます。

string path = @"d:\AssemblyInfo.cs"; 
     if (File.Exists(path)) 
     { 
      // Open the file to read from. 
      string[] readText = File.ReadAllLines(path); 
      var versionInfoLines = readText.Where(t => t.Contains("[assembly: AssemblyVersion")); 
      foreach (string item in versionInfoLines) 
      { 
       string version = item.Substring(item.IndexOf('(') + 2, item.LastIndexOf(')') - item.IndexOf('(') - 3);   
       Console.WriteLine(version); 
      } 

     } 

出力

1.0.0.0 
+0

おはなしくありがとう – Jonesopolis

関連する問題