我在我的项目中使用了一段时间的Eazfuscator,一切都在正常工作,直到我创建了一个名为"Release-Internal"的发布构建配置的副本。我还更新了构建后事件并将脚本更改为"if/I "$(ConfigurationName)" NEQ "Debug"..."。现在我的所有项目都混淆没有任何问题,但只有一个显示以下错误:
(发生 EF-1099 错误。
4>混淆器无法加载输入程序集或其之一 依赖。
4> 要解决此问题,您可以:
4> - 指定探测路径
4> - 在输入文件附近放置缺少的程序集
4> 更多信息可以在 Eazfuscator.NET 文档中找到:
4> 故障排除 -> 错误代码知识库 -> EF-1099 章节。
有趣的是,如果我将活动配置更改为"发布",则同一项目会毫无问题地混淆。"发布"和"内部发布"配置之间的区别只是"发布内部"有一个额外的条件编译符号,称为内部。
我还使用"发布内部"配置构建了没有混淆的项目。应用程序生成成功并按预期执行。
此致敬意
从构建输出来看,您似乎正在并行构建项目。
我认为在尝试加载程序集时缺少依赖项 Eazfuscator.NET。
我建议尝试在 Visual Studio IDE>"项目和解决方案">"工具">"选项"中将"最大并行项目生成数"设置为 1,然后重试。
事件查看器可能包含更多信息(例如并排错误)。
还可以尝试启用程序集绑定失败日志记录,以尝试确定找不到哪些特定依赖项。 请参阅:如何在 .NET 中启用程序集绑定失败日志记录 (Fusion)
它可以像在缺少依赖项的项目引用属性中将"复制本地"设置为 true 一样简单。
您可以阅读"Eazfuscator.NET Documentation.chm">错误代码>疑难解答知识库中的"EF-1099:无法加载输入程序集,反射加载失败"帮助主题。 Eazfuscator.NET 3.2.278.32704 的帮助文档在同一帮助主题中具有"有关启用 Eazfuscator.NET 的体系结构中立加载模式的说明"。