我想用Costura.Fody减少程序集的维度,这很好,实际上所有的dll都合并在一个程序集中,但是ConfuserEx有一个我无法解决的问题。
特别是当我打开ConfuserEx时,我会在应用程序上拖动.exe,添加规则,然后按Confuse来混淆.exe。我知道这个错误:
调试大楼管道..。信息解决依赖关系..。错误未能解决“MyApp.exe”的依赖关系。例外情况:无法解析程序集: dnlib.DotNet.Extensions.ResolveThrow(IAssemblyResolver self中的MahApp、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null、Confuser.Core.ConfuserEngine.Inspection(ConfuserContext上下文中的IAssembly汇编、ModuleDef sourceModule) ) e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:riga 264中的MahApp、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null在11:15、0:00通过时失败。
这只在我使用Costura.Fody时才会发生,因为现在在bin/debug文件夹中只有Costura的“缩减”程序集,我没有ConfuserEx正在寻找的dll。
我该如何处理这种情况呢?
谢谢。
发布于 2018-03-14 14:33:26
手动将引用的程序集复制到.exe所在的文件夹中,或按以下方式编辑FodyWeavers.xml:
<Weavers>
<Costura DisableCleanup='true'/>
</Weavers> 您的引用仍将被Costura.Fody合并到一个Costura.Fody中,但是ConfuserEx需要将引用放在同一个文件夹中才能工作。
发布于 2018-12-01 22:09:24
DisableCleanup="true“无法工作,因为它将压缩重命名的程序集放在obj\Costura文件夹中。
添加DisableCompression="true“会留下未压缩的源程序集,但是该文件仍然被重命名为numbered.costura前缀。手动重命名为需要的原始名称。
基于上述答案,似乎对我有效的最简单的解决办法是:
<Weavers> <Costura /> </Weavers>发布于 2019-02-28 15:01:20
目前最好的选择是完全禁用Costura的使用,并使用集成在ConfuserEx中的封隔器。这有一个额外的优点,即附加程序集也可以被混淆。
https://stackoverflow.com/questions/49047482
复制相似问题