Ответ 1
Откройте DLL в .NET Reflector.
у нас есть приложение в производстве, а код находится в форме с предварительным составом. Разработчик, который разработал это приложение, покинул компанию, и у нас нет резервной копии исходного кода. единственный доступ, который у нас есть, - это предварительно скомпилированный код на сервере. Теперь нам нужно исправить проблемы в приложении.
Есть ли способ декомпилировать (извлечь в исходный код) код PreCompiled?
Откройте DLL в .NET Reflector.
Чтобы обновить ответ @xOn:
В связи с недавней катастрофой управления исходными кодами мне пришлось восстановить свой проект из DLL. Так грустно, что я знаю о процедуре:
Получить .Net Reflector отсюда: http://www.red-gate.com/products/dotnet-development/reflector/
Вам не нужен FileDisassembler.
Загрузите свои корзины в Reflector или дважды щелкните их.
Помните, что инфраструктура .Net, возможно, не сохранила исходную структуру файла проекта. Поэтому, если некоторые из ваших страниц ASPX используют одно и то же имя базового класса в разных файлах .cs(тег I.E. Inherits
тот же, но тег CodeFile
отличается), вы не сможете просто "экспортировать исходный код".
Не следите за экспортом исходных файлов. Это не сработает.
Все еще предстоит проделать определенную работу, прежде чем вы сможете просто запустить старую кнопку. Например, библиотеки DLL могут напрямую ссылаться на свойства getter/seters. Вам придется это исправить.
Удачи.
Начните с:
http://www.red-gate.com/products/dotnet-development/reflector/
... плюс:
http://www.denisbauer.com/NETTools/FileDisassembler.aspx
Вам придется перекомпилировать последний, чтобы связать его с v6.5 рефлектора (последнее, начиная с этой публикации). Это хорошее дополнение, если вы хотите избежать копирования и вставки одного отдельного класса в файлы вручную. Он сбрасывает полностью сборку в виде файлов .cs. Я думаю, что даже может генерировать csproj.
Оба инструмента бесплатны.
Я обнаружил, что dll можно просто прочитать с помощью инструмента .NET Reflector, но не может извлечь исходный код. А также, когда веб-формы предварительно скомпилированы, мы даже не можем вернуть код за файлами. Все, что мы можем сделать, это отладить и проанализировать код.
У меня была аналогичная проблема, и я использовал Reflector для декомпиляции. Я получил исходный код, затем изменил бит, который я хотел, и восстановил его. Затем я снова скопировал эту dll на сайт Production. Он начал отражать мои изменения. Это было очень легко и совсем не сложно, возможно, потому, что на Precompiled site были dll для каждой страницы, и он был обновляемым, поэтому в dll был только файл с кодом.
Для справки: http://www.reflector.net/
Когда вы устанавливаете .net reflecter.its импортируете в визуальную студию. то вы увидели инструменты рефлектора .net в строке меню.
Нажмите на .net отражатель → Выберите Asseblies (файл Dll) для отладки.