Obfuscated dll in SharpDevelop does not show code completion

.NET obfuscator and automated error reporting

Moderators: Luke Jefferson, melvyn.harbour, dom.smith

Obfuscated dll in SharpDevelop does not show code completion

Postby CrazyMonkey01 » Thu Jun 02, 2011 12:35 am

We sell a commercial .net component (dll) that is obfuscated with SmartAssembly 6.

A customer contacted us regarding use in SharpDevelop 4. He is able to compile and run apps built in SharpDevelop.

However, in the SharpDevelop IDE, code completion/Intellisense does not work. After typing an object's instance name and a period, rather than popping up intellisense showing the component's interface, nothing happens. I confirmed this on my copy of SharpDevelop 4.

Using the same dll, I verified proper code completion/intellisense operation is Visual Studio versions 2005, 2008, and 2010 on the same PC.

I took it one step further and used the non-obfuscated build of our dll and found that code completion/intellisense started working in SharpDevelop.

Looking for some direction about how to diagnose, who to contact, etc.
CrazyMonkey01
 
Posts: 1
Joined: Wed Jun 01, 2011 11:41 pm

Postby Brian Donahue » Fri Jun 03, 2011 11:01 am

From all appearance, SharpDevelop, unlike Visual Studio, uses Reflectionto populate the code completion choices. Visual Studio uses XML documentation files, so Intellisense should continue to work with a protected assembly in its' IDE.

If the options used to protect the DLL include ones that will confuse Reflection, then there probably isn't anything you can do to make it work again. Since Reflection offers such a rich interface for reading assembly metadata, it's often the first step in referse-engineering an assembly, and this is exactly what SmartAssembly is trying to prevent.
Brian Donahue
 
Posts: 6670
Joined: Mon Aug 23, 2004 10:48 am


Return to SmartAssembly 6

Who is online

Users browsing this forum: No registered users and 2 guests