我使用msbuild构建我的dll(.NET4)并使用SmartAssembly 5.5进行模糊处理。
之后我在Mac(10.8)的MonoDevelop(最新版)中为简单的控制台应用程序设置参考。
构建正常,但是当我运行这个简单的应用程序时,我有一条消息: 未知堆类型:SmartAssembly
我问SA支持但是没有运气(saproj有项目blabla(支持Mono)检查。
我没看到如何附加截图,但是,当我运行我的应用程序时,我在控制台中看到该消息两次。它出现在程序停止在第一行代码的断点上之前。
所以也许有人知道在SmartAssembly或MonoDevelop中要更改什么来消除这个问题?感谢
答案 0 :(得分:1)
许多.NET混淆程序更改程序集,使它们在技术上不正确的程序集(它们不属于.NET程序集规范),但是它们仍然可以通过利用Microsoft实现的特定错误在Microsoft .NET运行时运行。我怀疑他们这样做是为了使装配读取器工具/库更难以加载程序集。不幸的是,这也阻止了Mono运行时加载程序集。通常Mono has a policy没有“修复”对这种无效混淆代码的支持,因此您需要向SmartAssembly支持部门寻求帮助。
如果你确定你正在使用SmartAssembly的“严格有效”选项进行编译并且它无效,那么也许你可以试试他们的“基本”选项。