• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:dllの取得)

VB2005でDLLの取得方法を教えてください

このQ&Aのポイント
  • VB2005を使用していて、実行中のシステムで使用しているDLLはAssembly.GetReferencedAssembliesを使用して取得できますが、別のシステム(例:Sample.exe)で必要なDLLを取得する方法がわかりません。どなたかわかる方がいらっしゃればご教授ください。
  • Sample.exeは起動していませんが、必要であればProcess.Start()等を使用して一時的に起動することも可能です。非表示で起動すれば必要なDLL一覧を取得できます。ご教授いただけると幸いです。
  • 具体的な手順としては、VB2005を使用して作成したプログラム内で、別のシステム(例:Sample.exe)を非表示で起動し、必要なDLL一覧を取得することができます。Assembly.GetReferencedAssembliesを使用して取得できるのは現在のシステムで使用しているDLLの情報のみであり、他のシステムで使用するDLLを取得する方法は存在しません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>VB2005を使用しています。実行中のシステムで使用しているDLLはAssembly.GetReferencedAssembliesを使用して取得できたのですが、 できている部分があるのであれば、今度からは既存のコードも載せると、より一層回答が得やすくなると思いますよ。 私の環境では↓でとれました(.NET2003) Dim l_asm As Reflection.Assembly = Reflection.Assembly.LoadFile("C:\Test\Sample.exe") For Each l_asmName As Reflection.AssemblyName In l_asm.GetReferencedAssemblies   ここで[l_asmName]のName/FullName/Versionなどをデバッグしてみてください Next

Tore-Tore
質問者

お礼

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim instance As Reflection.Assembly = Reflection.Assembly.LoadFile("C:\Program Files\COMDEC\Sales\Sales.exe") Dim returnValue As AssemblyName() returnValue = instance.GetReferencedAssemblies Dim sMsg As String = "" For i As Short = 0 To returnValue.Length - 1 sMsg &= returnValue(i).Name & ".dll" & " | " & GetVersion(returnValue(i)) & ControlChars.CrLf Next MessageBox.Show(sMsg, "", MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub Private Function GetVersion(ByVal Assemblies As AssemblyName) As String Return Assemblies.Version.Major & "." & Assemblies.Version.Minor & "." & Assemblies.Version.Revision & "." & Assemblies.Version.Build End Function ありがとうございます。上記コードにて取得する事ができました。 >できている部分があるのであれば、今度からは既存のコードも載せると、より一層回答が得やすくなると思いますよ。 おっしゃるとおりですね。以後、気をつけます。

関連するQ&A