Using ILmerge with smartassembly

alexmalexm Posts: 4
edited June 1, 2011 4:46PM in SmartAssembly
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?

Comments

  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    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.
  • 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.
  • Hi, are there any news regarding this problem?
  • 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.
  • 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.
Sign In or Register to comment.