【VB.NET】実行中のアセンブリが参照している DLL のアセンブリ情報を取得する

実行中の EXE が参照しているクラスライブラリ(DLL)のアセンブリ情報を取得したいと思った。

結論から言うと、こんな感じでいけた(下記のコードは「著作権」の取得例)。

 

アセンブリ情報の違う項目を取得したい場合は、AssemblyCopyrightAttribute のところを別の Assembly~Attribute に変えて、最後のほうの oCopyright.Copyright を適切な変数名とプロパティにすればオーケー。(別の Assembly~Attribute とは、AssemblyTitleAttribute、AssemblyDescriptionAttribute、AssemblyCompanyAttribute、AssemblyProductAttribute、AssemblyTrademarkAttribute 等)

特定の DLL の情報だけを取得したい場合は、あくまでも一例だが、下記のように条件分岐させてやればいいかな(dic にはあらかじめ DLL 名を入れておく)。

Assembly.Load の他に Assembly.LoadFile や Assembly.LoadFrom や Assembly.LoadWithPartialName でも Assembly を取得できるのでチェックしてみてください。

 

話がずれるけど、アセンブリ情報を取得するコードのところをよく見てみると、一見無駄なことをしてるようにも見えますね。コピーライトの型を指定しておきながら、取得するのは AssemblyCopyrightAttribute ではなく Attribute。そしてその Attribute をあらためてコピーライトの型にキャストし直してる。う~む。

コメントの投稿

avatar
  購読する  
通知を受け取る対象