Определите местоположение оригинальной конструкции / путь EXE с использованием рефлектора или другого инструмента.
-
25-09-2019 - |
Вопрос
У меня есть EXE, который в настоящее время развернут на нашем производственном сервере (C # .NET 2). Я унаследовал задачу внесения некоторых изменений в это приложение и повторное развертывание.
Я не писал это приложение, и я был указан на несколько разных папок на различных сетевых дисках с несколькими различными решениями Visual Studio Solutions (~ 10), которые были различными заклинаниями этого приложения через время и могут быть претенденты для проекта Visual Studio Это было использовано для генерации этого EXE, но я не знаю, какой проект был использован, который соответствует производству EXE.
Есть ли способ, использующий .NET Reflicle или другой инструмент для определения исходного пути к файлам исходные файлы, когда они использовались для компиляции EXE, Затем я могу работать назад, чтобы определить правильное решение Visual Studio и начните совершать изменения там.
Спасибо
Решение
Это звучит как один ад с ситуацией, если вы не можете узнать, какое происхождение о том, что работает в производстве.
Тем не менее, одно возможное решение заключается в том, чтобы взглянуть на заголовок отладки из сборки .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 Handy, вы можете использовать инструмент, как pdbdump. Чтобы узнать, какие файлы были использованы для составления сборки.
Другие советы
Ваша лучшая ставка, вероятно, используется отражатель и один из плагинов файлов генератора в http://www.codeplex.com/reflenteraddins. бросить код в файлы. Перед тем, как внести какие-либо изменения, убедитесь, что вы можете восстановить.