4

因此,我有一个中度到显着复杂的 WPF 应用程序,我需要通过 Dotfuscator 混淆输出程序集(专业版 - 客户端拥有许可证的版本)。

三个问题:

  • 混淆过程在OutOfMemoryException大约 85% 的时间内崩溃
  • 这需要很长时间 - 平均混淆通过大约需要56 分钟才能完成
  • 从基于反射的查找到资源,有一大堆各种问题会导致应用程序因混淆程序集而崩溃。

第一个问题我可以通过命令行而不是 GUI 运行来缓解(至少它不会崩溃),如果我可以快速迭代,第三个问题就不会那么大了选项组合,而不是每个工作日进行 5 次尝试。

这真的是让我死去的总时间;有人知道任何“快速修复”的想法可以显着缩短混淆时间吗?是否有可能我所做的一些愚蠢的事情在此过程中导致某种“蒸汽锁”,从而增加了处理时间?我是否需要按客户端使用不同的混淆器?

一些细节:

  • 大约。应用程序中有 38 个程序集/exe(其中可能有 5-10 个是标记为“工件”的第三方 dll,因此它们不会被混淆)
  • 这个盒子是一个半强大的物理服务器,而不是虚拟机。
  • 我使用配置文件来驱动混淆器,而不是单独处理每个程序集。
  • 我已经在所述配置文件中标记了许多排除项,例如生成的资源
  • 所有程序集都标记为“库”

任何想法和/或 SWAG 将不胜感激。

4

1 回答 1

1

您很可能需要更多内存。在运行大型项目时,Dotfuscator 在内存中并不完全是轻量级的。对于大多数项目,我建议至少 2 个演出,最好是 4 个演出。此外,由于额外的虚拟内存空间,它可能在 64 位下运行得更快。此外,您可能希望确保丢失最新版本的 Dotfuscator,因为在过去的版本之间有一些性能改进

排除通常不会显着加速 Dotfuscator,除非您排除整个程序集。

于 2013-05-01T14:17:27.320 回答