Определите место первоначальной сборки / путь к 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 для выгрузки кода в файлы. Прежде чем вносить какие-либо изменения, убедитесь, что вы можете восстановить.