2010-11-19 5 views
3

Nous avons quelques procs internes de base de données CLR (MSSQL 2005) qui ont été mis en place par un ancien employé qui a égaré (et jamais vérifié) le code source .NET utilisé pour construire les assemblages. Ceux-ci n'étaient pas obscurcis.Est-il possible de décompiler un assembly de procédure stockée SQL Server CLR?

Est-il possible de désassembler les assemblages dans un état où nous pourrions éditer la source et recompiler?

+2

Avez-vous essayé d'utiliser Reflector? Il est généralement très bon à décompiler. – cdhowie

Répondre

4

Oui, tant que vous avez l'ensemble et qu'il n'a pas été obtuifié de quelque façon que ce soit.

NET Reflector devrait fonctionner pour vous:

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

+4

"Obtusifié?" Je ne savais pas Sarah Palin était sur SO! +1 –

+1

Vous pariez! En fait, je n'ai jamais trouvé l'usage correct de ce mot. : P – Andrew

+0

Merci beaucoup pour cela, mais j'ai un problème. J'avais extrait la DLL du serveur en utilisant la méthode trouvée ici: http://serverfault.com/questions/139703/extracting-a-sqlclr-assembly - cependant, quand j'ouvre dans Reflector, il est écrit "Référence d'objet non définie à une instance d'un objet. " Il a ouvert tout autre assembly .NET que j'avais compilé très bien. Des idées? – Dane

0

Une fois que vous avez extrait l'assembly dans une DLL, vous pouvez utiliser le ILSpy open-source pour le décompiler. Vous ne serez pas en mesure de voir toutes les options du compilateur utilisées lors de la compilation, et vous ne serez pas capable de voir comment le code source a été divisé en fichiers séparés. Pourtant, vous verrez assez pour être capable de créer un projet Visual Studio, créer le fichier Properties\AssemblyInfo.cs, ajouter les références, etc. afin que vous puissiez l'ajouter correctement au contrôle de source, puis commencer à le modifier.

Questions connexes