0

I have my dlls (.NET4) build with msbuild and obfuscated with SmartAssembly 5.5.

After that i set them with reference for simple console application in the MonoDevelop (latest) on Mac (10.8).

Built ok, but when i ran that simple app, i have a message: Unknown heap type: SmartAssembly

I asked SA support but no luck yet (the saproj have item blabla(supports Mono) checked.

I dont see how to attach a screenshot, but, when i run my application i see in the console that message twice. It appears before program stops on the breakpoint on the first line of code.

So maybe someone knows what to change in SmartAssembly or in MonoDevelop to remove this problem ? Thanks

Alexander
  • 431
  • 2
  • 5
  • 19

1 Answers1

1

Many .NET obfuscators change the assemblies such that they are not technically correct assemblies (they fall outside the .NET assembly specs) but such that they still run on the Microsoft .NET runtime by exploiting bugs specific to Microsoft's implementation. I suspect they do this to make it harder for assembly reader tools/libraries to load the assemblies. Unfortunately, this also prevents Mono runtime from loading the assemblies. In general Mono has a policy of not "fixing" support for this kind of invalid obfuscated code, so you'll need to ask SmartAssembly support for help.

If you're certain you're compiling with SmartAssembly's "Strictly valid" option and it's not working, perhaps you could perhaps try their "Basic" option.

Mikayla Hutchinson
  • 16,113
  • 2
  • 44
  • 50
  • Thank you. I asked SmartAssembly support, seems latest v6.7 doesnt produce this error at the Mono side. – Alexander Dec 03 '12 at 09:05