Using ILmerge with smartassembly

.NET obfuscator and automated error reporting

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

Using ILmerge with smartassembly

Postby alexm » Wed May 04, 2011 5:34 am

Hello,

ILmerge fails to process assemblies obfuscated using smartassembly,

we are getting the following error:

ILMerge.Merge: ERROR!!: Duplicate type 'SmartAssembly.Attributes.PoweredByAttrib
ute' found in assembly '

Are there any workarounds for this?
alexm
 
Posts: 3
Joined: Wed May 04, 2011 5:30 am

Postby Brian Donahue » Wed May 04, 2011 9:23 am

Every assembly processed by SA is going to get the poweredby attribute and probably some other types added, so, no, you can't ILMerge them without hacking, reverse-engineering, and potentially breaking the SA protections.

You can use SmartAssembly to merge or embed instead.
Brian Donahue
 
Posts: 6668
Joined: Mon Aug 23, 2004 10:48 am

Postby alexm » Wed May 04, 2011 12:03 pm

Hello thanks for your reply,
is it possible for you to put this type under namespace based on Assembly name or something similar to make it unique and add this setting as option into configuration file.(Make result ILMerge compatible)
We definetly need {sa} to work with ILMerge because it's our customers' requirement.
alexm
 
Posts: 3
Joined: Wed May 04, 2011 5:30 am

Postby alexm » Thu May 05, 2011 9:17 pm

Hi, are there any news regarding this problem?
alexm
 
Posts: 3
Joined: Wed May 04, 2011 5:30 am

Postby Simon C » Fri May 06, 2011 9:47 am

May I ask why the customer requires ILMerge support?

There are several things that would break if we fixed ILMerge by putting the attribute in different assemblies; most notably, tamper protection, level 3 name obfuscation, ref dynamic proxies, and strings encoding.

ILMerging processed assemblies is not a scenario we have designed the tool to support, and it would be useful to know why exactly this is required so we can look at other solutions to the problem.
Simon C
 
Posts: 140
Joined: Tue Feb 26, 2008 4:56 pm
Location: Red Gate Software

Postby mrjoltcola » Wed Jun 01, 2011 9:46 pm

Have you tried just using the /allowDup switch for ilmerge?

Though I don't need ilmerge in my build chains, since SmartAssembly is a replacement for ilmerge for me, I may sell a customer a dll and they will use ilmerge on it.

So I'd hope using ilmerge /allowDup would take care of the issue, if not, I'd post a defect report to RedGate or tell the customer to use something besides ilmerge.
mrjoltcola
 
Posts: 1
Joined: Wed Jun 01, 2011 7:46 pm


Return to SmartAssembly 6

Who is online

Users browsing this forum: No registered users and 0 guests