2011-01-17 8 views
0

ロードされたDLLから「製品バージョン」属性を取得しようとしています。DLLの製品版を取得

たとえば、ファイル>エクスプローラからのプロパティをクリックすると、my System.Web.dllの製品バージョンが2.0.50727.4955になります。

しかし、私次のコードを持っている:

var assemblies = AppDomain.CurrentDomain.GetAssemblies(); 

foreach (var assembly in assemblies) 
{ 
    stringBuilder.Append("<br/>"); 
    stringBuilder.Append("<div><b>Name: </b>" + assembly.GetName() + "</div>"); 
    stringBuilder.Append("<div><b>Full name: </b>" + assembly.FullName + "</div>"); 
    stringBuilder.Append("<div><b>Is from GAC: </b>" + assembly.GlobalAssemblyCache + "</div>"); 
    stringBuilder.Append("<div><b>ImageRuntimeVersion: </b>" + assembly.ImageRuntimeVersion + "</div>"); 
} 

ImageRuntimeVersionがv2.0.50727の返し、私はまた、製品版の最後の4桁を得ることができますどのような方法があるの?

ありがとうございます!

答えて

-1

が、私は通常バージョンの最後の部分を返しません。このような何かを、実行します。

return Assembly.GetAssembly(typeof(System.Web.UI.ScriptManager)).GetName().Version.ToString(); 
+0

おかげAllaraを、私は改正をしようとしましたプロパティが返されます。2.0.0.0 – timothyclifford

+0

これは間違っていますが、ファイルまたは製品のバージョンではなくアセンブリバージョンのみを返します。 – Nathan

2

あなたはFileVersionInfo classを探しています:

FileVersionInfo.GetVersionInfo(typeof(string).Assembly.Location) 
+0

アセンブリを動的に反復処理している場合、その場所は使用できません。たとえば、私がforeachループ内にFileVersionInfo.GetVersionInfo(assembly.Location)を置くと、例外がスローされます。呼び出されたメンバーは、動的アセンブリではサポートされていません。 – timothyclifford

+1

@ティモシー:それらをスキップする必要があります。彼らはファイルを全く持っていないので、あなたが探している情報は存在しません。 'IsDynamic'プロパティをチェックしてください – SLaks

関連する問題