Определите место первоначальной сборки / путь к exe-файлу, используя.Net Reflector или другой инструмент

У меня есть EXE, который в настоящее время развернут на нашем производственном сервере (C# .net 2). Я унаследовал задачу внесения некоторых изменений в это приложение и повторного развертывания.

Я не писал это приложение, и мне было указано на несколько разных папок на различных сетевых дисках с несколькими различными решениями Visual Studio (~10), которые были различными воплощениями этого приложения во времени и могли быть претендентами на проект Visual Studio. это было использовано для создания этого EXE-файла, но я не знаю, какой проект был использован, который соответствует в производственном EXE.

Есть ли способ с помощью.net Reflector или другого инструмента определить исходный путь к файлу, который лежали в исходных файлах, когда они использовались для компиляции EXE, затем я могу вернуться назад, чтобы определить правильное решение Visual Studio и начать вносить в него изменения.

Спасибо

2 ответа

Решение

Это звучит как адская ситуация, если вы не можете узнать, каково происхождение того, что работает в производстве.

Тем не менее, одно из возможных решений состоит в том, чтобы взглянуть на заголовок отладки сборки.exe, если он был скомпилирован с символами отладки, он может содержать исходный полный путь к pdb, давая вам подсказку о том, где он был собран, Вы можете получить это с dumpbin инструмент, который является частью Windows SDK.

Вот пример вывода:

  Debug Directories

        Time Type       Size      RVA  Pointer
    -------- ------ -------- -------- --------
    4A0F2A94 cv           51 0006672C    6492C    Format: RSDS, {77468AA8-8494-46AC-87DF-422721517504}, 8, C:\sources\mcs\class\Mono.Cecil\obj\Debug\Mono.Cecil.pdb

Еще лучше, если у вас есть удобный pdb, вы можете использовать такой инструмент, как pdbdump, чтобы узнать, какие файлы использовались для компиляции сборки.

Лучше всего, вероятно, использовать Reflector и один из плагинов генератора файлов по адресу http://www.codeplex.com/reflectoraddins для выгрузки кода в файлы. Прежде чем вносить какие-либо изменения, убедитесь, что вы можете восстановить.

Другие вопросы по тегам