Можно ли декомпилировать сборку хранимых процедур SQL Server CLR?

У нас есть несколько хранимых процедур CLR внутренней проприетарной базы данных (MSSQL 2005), которые были собраны бывшим сотрудником, который потерял (и никогда не проверял) исходный код .NET, используемый для сборки сборок. Они не были запутаны.

Можно ли реконструировать сборки до состояния, когда мы могли бы редактировать исходный код и перекомпилировать?


person Dane    schedule 19.11.2010    source источник
comment
Вы пробовали использовать Reflector на нем? Обычно он довольно хорошо декомпилируется.   -  person cdhowie    schedule 19.11.2010


Ответы (3)


Да, пока у вас есть сборка и она ничем не запутана.

.NET Reflector должен работать на вас:

http://www.red-gate.com/products/reflector/

person Community    schedule 19.11.2010
comment
Тупой? Я не знал, что Сара Пэйлин была на ТАК! +1 - person Dave Markle; 19.11.2010
comment
Еще бы! На самом деле, я так и не нашел правильного употребления этого слова. :П - person ; 19.11.2010
comment
Большое спасибо за это, однако у меня есть проблема. Я извлек DLL с сервера, используя метод, найденный здесь: serverfault .com/questions/139703/extracting-a-sqlclr-assembly - однако, когда я открываю в Reflector, он говорит, что ссылка на объект не установлена ​​​​на экземпляр объекта. Он отлично открывал любую другую сборку .NET, которую я скомпилировал. Любые идеи? - person Dane; 19.11.2010
comment
Есть ли какая-либо другая информация о трассировке стека после сообщения? - person ; 19.11.2010

Здесь есть пара предложений:

Лучший (бесплатный?) декомпилятор для C# с интеграцией Visual Studio?

Не забывайте, что вы также можете использовать профилировщик SQL Server для перехвата операторов SQL.

person SteveCav    schedule 19.11.2010

После извлечения сборки в DLL можно использовать ILSpy с открытым исходным кодом для ее декомпиляции. Вы не сможете увидеть все параметры компилятора, использованные при его компиляции, и не сможете увидеть, как исходный код был разбит на отдельные файлы. Тем не менее, вы увидите достаточно, чтобы иметь возможность создать проект Visual Studio, создать файл Properties\AssemblyInfo.cs, добавить ссылки и т. д., чтобы вы могли правильно добавить его в систему управления версиями, а затем начать его редактирование.

person Solomon Rutzky    schedule 06.02.2017