Я пытаюсь прочитать все зависимости одного файла DLL по известному пути.Для этого я использую отражение, как показано в следующем коде:
For Each AsmName As AssemblyName In asm.GetReferencedAssemblies()
Try
Log += AsmName.Name & " : " & [Assembly].ReflectionOnlyLoad(AsmName.ToString).Location & vbCrLf
Catch ex As Exception
Log += AsmName.Name & " : NOT FOUND." & vbCrLf
End Try
Next
Чтобы проверить это, я разработал dll в VB NET с несколькими зависимостями от других созданных мной dll-файлов.
Когда я передаю путь к файлу, я могу обнаружить все сборки, которые зависят от файла.Но когда я пытаюсь восстановить путь к файлу для зависимости, я могу найти путь ко всем файлам для всех зависимостей, кроме созданных мной dll-файлов.
Когда я запускаю код, я получаю следующий результат журнала:
mscorlib: C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ mscorlib.dll Microsoft.VisualBasic: C: \ WINDOWS \ Assembly \ GAC_MSIL \ Microsoft.VisualBasic \ 8.0.0.0__b03f5f7f11d50a3ual \ Microsoft..dll System.Xml.Linq: C: \ WINDOWS \ assembly \ GAC_MSIL \ System.Xml.Linq \ 3.5.0.0__b77a5c561934e089 \ System.Xml.Linq.dll Система: C: \ WINDOWS \ assembly \ GAC_MSIL \ System \ 2.0.0.0__b77a5c561934e089 \ System.dll IM2_DataFile: НЕ НАЙДЕН.System.Data: C: \ WINDOWS \ assembly \ GAC_32 \ System.Data \ 2.0.0.0__b77a5c561934e089 \ System.Data.dll IM2_DataRow: НЕ НАЙДЕНО.System.Drawing: C: \ WINDOWS \ assembly \ GAC_MSIL \ System.Drawing \ 2.0.0.0__b03f5f7f11d50a3a \ System.Drawing.dll IM2_DataProviderTools: НЕ НАЙДЕНО.System.Windows.Forms: C: \ WINDOWS \ assembly \ GAC_MSIL \ System.Windows.Forms \ 2.0.0.0__b77a5c561934e089 \ System.Windows.Forms.dll Telerik.WinControls.UI: C: \ WINDOWS \ assembly \ GAC_MSIL \ Telerik.WinControls.UI \ 2009.2.9.729__5bb2a467cbec794e \ Telerik.WinControls.UI.dll IM2_DataRowPanel: НЕ НАЙДЕНО.Telerik.WinControls.GridView: C: \ WINDOWS \ assembly \ GAC_MSIL \ Telerik.WinControls.GridView \ 2009.2.9.729__5bb2a467cbec794e \ Telerik.WinControls.GridView.dll IM2_Language_Controller: НЕ НАЙДЕНО.System.Core: C: \ WINDOWS \ assembly \ GAC_MSIL \ System.Core \ 3.5.0.0__b77a5c561934e089 \ System.Core.dll Telerik.WinControls: C: \ WINDOWS \ assembly \ GAC_MSIL \ Telerik.WinControls \ 2009.2.9.729__5brik794c \ beb2794c.WinControls.dll IM2_CommonTools: НЕ НАЙДЕН.
Все файлы, которые начинаются с IM2_ - это файлы, которые я хочу получить путь.
Я заметил, что файлы, которые не могут найтиимеет PublicKeyToken = null.Я гуглил это, потому что я не сериализовал классы, когда они были скомпилированы.
Пожалуйста, кто-нибудь может мне помочь?Цель - получить все пути к файлам всех зависимостей файла DLL.
Заранее спасибо.