Строго говоря, вы не восстановите свой исходный код, но, как уже было сказано, вы можете декомпилировать с помощью такого инструмента, как ILSpy или dotPeek , чтобы увидеть представление кода того или иного кода.NET двоичный код делает.
У меня была неудачная ситуация, когда мне пришлось декомпилировать сайт нового клиента, который потерял свой исходный код из-за смягчающих обстоятельств, поэтому вот что я в итоге сделал, чтобы вернутьсяв квадрат.
- Установите новое решение с той же структурой проекта, что и у вас.
- Перенесите существующие двоичные файлы на тестовый сервер и измените конфигурацию науказать базы данных на новую копию.Вы хотите, чтобы точно такой же код выполнялся на этом сервере, но все внешние зависимости (БД, ведение журнала, хранилище больших двоичных объектов и т. Д.) Были бы отдельными.
- Поместите декомпилированный код на одном экране, а Visual Studio - на другом,и просматривайте каждый файл один за другим, пока не получите готовое решение.Если решение содержит тесты, сначала выполните их.
- Поместите свой код в систему контроля версий!Кроме того, убедитесь, что ваш репозиторий находится в другом месте, будь то на GitHub / Gitlab или на другой машине - если только он не находится в одном месте.
- Как только вы почувствуете, что код работает,соберите ваши новые двоичные файлы в режиме Release и снова декомпилируйте.Отсюда, сравните ваши старые двоичные файлы с новыми двоичными файлами, чтобы увидеть, есть ли какие-либо различия.
- Если этого не существует, создайте инфраструктуру тестирования, чтобы убедиться, что все функции, которые вы переносите на новыйкод будет продолжать работать.
- Как только вы почувствуете, что у вас есть точный порт, разверните.Если у вас есть сине-зеленая установка, это будет очень хорошо работать для проверки производственных проблем.
Поскольку вы пометили свой пост как Umbraco, я предполагаю, что это сайт Umbraco.Убедитесь, что вы используете те же версии Umbraco, что и ваш существующий сайт, в противном случае вам будет нанесен вред.Также убедитесь, что все сторонние библиотеки настроены правильно, а все ресурсы / артефакты скопированы.Последнее, что вы хотите сделать при развертывании нового кода, - это стереть медиатеку или уничтожить все ваши журналы.