无法解决exe .Net

时间:2019-03-06 05:14:02

标签: .net vb.net confuserex

您好,我尝试编译/保护test.exe项目。 使用“ ConfuserEx”

我遇到的错误:

  

[错误]无法解决'test.exe'的依赖关系。   异常:dnlib.DotNet.AssemblyResolveException:无法解析程序集:Discord.Net.WebSocket,版本= 1.0.2.0,区域性=中性,PublicKeyToken =空      在E:\ Source \ Public \ Confuser2 \ dnlib \ src \ DotNet \ IAssemblyResolver.cs:line 113中的dnlib.DotNet.Extensions.ResolveThrow(IAssemblyResolver自身,IAssembly程序集,ModuleDef sourceModule)      在e:\ Source \ Public \ Confuser2 \ Confuser.Core \ ConfuserEngine.cs:line 264中的Confuser.Core.ConfuserEngine.Inspection(ConfuserContext上下文)中   在7:06 AM失败,0:01过去了。

要进一步说明,我有dll,我必须使用.NET Reactor编译器将它们合并到程序中,然后使用“ ConfuserEx”进行保护,并得到该错误。

我相信stackoverflow开发人员的力量,谢谢。

2 个答案:

答案 0 :(得分:1)

通常可以通过将受影响的程序集作为外部程序集添加到ConfuserEx项目中来解决此类问题。

可以通过添加以下内容在* .crproj文件中完成

<module path="Discord.Net.WebSocket.dll" external="true" />

根据需要修复路径值。这将指示ConfuserEx在开始解析类型之前加载特定的程序集。这样,您就可以控制要加载哪些程序集。

external="true"部分意味着程序集不受包装或混淆,而仅用于解析引用。

因此,最终ConfuserEx项目文件应如下所示:

<project outputDir=".\Confused" baseDir="." xmlns="http://confuser.codeplex.com">
  <rule pattern="true" …>
    …
  </rule>
  <module path="test.exe" />
  <module path="Discord.Net.WebSocket.dll" external="true" />
</project>

路径可能不同。

答案 1 :(得分:0)

我通过将探测路径添加到ConfuserEx设置解决了这个问题。

在Visual Studio中,选择Tools> ConfuserEX Probe Paths

enter image description here

这将弹出“探测路径”对话框。在此对话框中添加路径。

enter image description here

请记住,您必须输入ConfuserEX抱怨的DLL所在文件夹的确切路径。不幸的是,它不会搜索子文件夹,因此您无法一次为所有依赖项指定packages文件夹。