首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将Costura.Fody与ConfuserEx结合使用

不能将Costura.Fody与ConfuserEx结合使用
EN

Stack Overflow用户
提问于 2018-03-01 10:21:19
回答 4查看 2.3K关注 0票数 0

我想用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。

我该如何处理这种情况呢?

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2018-03-14 14:33:26

手动将引用的程序集复制到.exe所在的文件夹中,或按以下方式编辑FodyWeavers.xml:

代码语言:javascript
复制
<Weavers>
  <Costura DisableCleanup='true'/>
</Weavers>  

您的引用仍将被Costura.Fody合并到一个Costura.Fody中,但是ConfuserEx需要将引用放在同一个文件夹中才能工作。

票数 0
EN

Stack Overflow用户

发布于 2018-12-01 22:09:24

DisableCleanup="true“无法工作,因为它将压缩重命名的程序集放在obj\Costura文件夹中。

添加DisableCompression="true“会留下未压缩的源程序集,但是该文件仍然被重命名为numbered.costura前缀。手动重命名为需要的原始名称。

基于上述答案,似乎对我有效的最简单的解决办法是:

  1. 使用下面的默认FodyWeavers.xml,运行build来创建costura可执行文件。 <Weavers> <Costura /> </Weavers>
  2. 将带有config和pdb的输出可执行文件复制到另一个文件夹(我使用打包子文件夹)
  3. 禁用Costura weaver (在上面的xml中注释Costura标记),然后再次运行build,这将生成bin\debug文件夹中的所有dll。
  4. 用从步骤2复制的减少的可执行文件覆盖可执行文件.
  5. 运行ConfuseEx并加载减少的可执行文件(步骤4)

来源:https://github.com/Fody/Costura/

票数 0
EN

Stack Overflow用户

发布于 2019-02-28 15:01:20

目前最好的选择是完全禁用Costura的使用,并使用集成在ConfuserEx中的封隔器。这有一个额外的优点,即附加程序集也可以被混淆。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49047482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档