Webアプリケーションには_AssemblyInfo.cs
_ファイルがありますが、同じソリューションには他のプロジェクトがあります。ほとんどはクラスライブラリです。 UIに_AssemblyInfo.cs
_のアセンブリバージョンを表示するように指示されます。 SO from プログラム内でのC#AssemblyFileVersionの使用 で次の解決策を見つけました
_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 ());
_
しかし、これは私を少し混乱させます。 GetExecutingAssembly()
と表示され、他のクラスライブラリから別のアセンブリで実行されている場合これらのコードは、常にWebプロジェクトにある_AssemblyInfo.cs
_ファイルからフェッチしますか? (これは私が欲しいものです)
ドキュメントが示すように、Assembly.GetExecutingAssembly()
は、呼び出しコードが内部でコンパイルされたアセンブリを取得します。
より明示的(かつ高速)にしたい場合は、typeof(SomeType).Assembly
を記述できます。ここで、SomeType
は探しているプロジェクト内の任意のタイプです。