31

AssemblyInfo.csWeb アプリケーションにファイルがありますが、同じソリューションに他のプロジェクトがあります。それらはほとんどがクラス ライブラリです。AssemblyInfo.csUIから Assembly Version を表示するように言われました。プログラム内でのC#AssemblyFileVersionの使用から、SOで次の解決策を見つけました

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()他のクラス ライブラリの別のアセンブリで実行されている場合はどうなりますか? これらのコードAssemblyInfo.csは、Web プロジェクトに存在するファイルから常にフェッチされますか? (これが私が欲しいものです)

4

2 に答える 2

32

ドキュメントに記載Assembly.GetExecutingAssembly()されているように、呼び出し元のコードが内部でコンパイルされたアセンブリを取得します。

より明確に(そしてより速く)したい場合は、を書くことができますtypeof(SomeType).Assembly。ここでSomeType、探しているプロジェクトの任意のタイプです。

于 2013-02-28T01:57:21.827 に答える