Question

Would you recommend a free tool for exploring compiled .NET assemblies. I need to be able...

Would you recommend a free tool for exploring compiled .NET assemblies. I need to be able to:

Explore the assemblies' source code and visualize the IL to a CLR language of choice (C#, VB.NET, managed C++ and etc.)
Support navigation between the classes (via Ctrl + click on the class name for example, or other convenient way).
Allow examining the embedded resources in the assembly, if any (text, images etc.)
Capable of handling assemblies since .NET version 2.0.

Optionally, I will be glad if it supports:

Exporting classes to source files.
Integration with Visual Studio 2010 (this one need not be free) that allows for debugging the source code.
Integration with the Xamarin Studio IDE (former MonoDevelop) would be a plus, although I am getting too optimistic here.

I used to work with .NET Reflector a few years ago and it supported most of the above features (actually all except the Xamarin integration). I tried to use it again a few weeks ago but now it has become a commercial product and my old free version fails to start - it redirects me to a page where I should purchase the latest version.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

ILSpy is one of the more popular FOSS .NET decompilers. It's pretty intuitive to use, though I have not yet tried Reflector so I can't compare them.

Unfortunately, it doesn't completely satisfy your requirements, though it gets close. There is no support for decompiling to C++/CLI, though it does work well for IL, C# and VB.NET.

You can click on class and method names to navigate to their definitions, or analyse them through the context menu for where they are accessed. It can render both images and text from embedded resources, and allows you to save them - I have not tried other filetypes, but they should work in the same way.

You can export classes to source files, and you can even export entire assemblies into .csproj (MS build) files. For simpler projects these can be compiled directly. Many more complex projects tend to fail to compile without modification - notably, their site mentions it can't decompile and then recompile itself. If you need to decompile an entire assembly, you would likely have a lot of work left to get it to a compilable state.

Unfortunately, decompilation is not perfect. Some more complex language constructs, like C#'s dynamic, are not yet supported and can result in somewhat garbled output. You can still get the general algorithm through the clutter, but it certainly wouldn't work if you just wanted to copy some code.

IDE integration. There was an early attempt for Visual Studio, though it appears to have been abandoned. There also doesn't seem to be any integration for Xamarin (when'd that happen?). However, the developers of ILSpy also created SharpDevelop, and recent news indicates they are planning SharpDevelop integration.

If you want other options, there's also dotPeek and JustDecompile. They do claim to have Visual Studio extensions, and might be more polished with some well-known companies behind them. I have not had a need to use either of them (ILSpy has worked for everything I needed), but they may suit your requirements better.

Add a comment
Answer #2

ILSpy is one of the more popular FOSS .NET decompilers. It's pretty intuitive to use, though I have not yet tried Reflector so I can't compare them.

Unfortunately, it doesn't completely satisfy your requirements, though it gets close. There is no support for decompiling to C++/CLI, though it does work well for IL, C# and VB.NET.

You can click on class and method names to navigate to their definitions, or analyse them through the context menu for where they are accessed. It can render both images and text from embedded resources, and allows you to save them - I have not tried other filetypes, but they should work in the same way.

You can export classes to source files, and you can even export entire assemblies into .csproj (MS build) files. For simpler projects these can be compiled directly. Many more complex projects tend to fail to compile without modification - notably, their site mentions it can't decompile and then recompile itself. If you need to decompile an entire assembly, you would likely have a lot of work left to get it to a compilable state.

Unfortunately, decompilation is not perfect. Some more complex language constructs, like C#'s dynamic, are not yet supported and can result in somewhat garbled output. You can still get the general algorithm through the clutter, but it certainly wouldn't work if you just wanted to copy some code.

IDE integration. There was an early attempt for Visual Studio, though it appears to have been abandoned. There also doesn't seem to be any integration for Xamarin (when'd that happen?). However, the developers of ILSpy also created SharpDevelop, and recent news indicates they are planning SharpDevelop integration.

If you want other options, there's also dotPeek and JustDecompile. They do claim to have Visual Studio extensions, and might be more polished with some well-known companies behind them. I have not had a need to use either of them (ILSpy has worked for everything I needed), but they may suit your requirements better.

Add a comment
Know the answer?
Add Answer to:
Would you recommend a free tool for exploring compiled .NET assemblies. I need to be able...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Read this article. Then write a 250 word response on two of the programs you like...

    Read this article. Then write a 250 word response on two of the programs you like the most. Open source business intelligence software 1. BIRT BIRT is an open source BI program that CloudTweaks says is often viewed as the industry standard. BIRT boasts “over 12 million downloads and over 2.5 million developers across 157 countries.” Its users include heavyweights such as Cisco, S1, and IBM (which is also a BIRT sponsor). They also have maturity going for them, as...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT