1

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

我得到的错误:

[错误] 无法解决“test.exe”的依赖关系。异常:dnlib.DotNet.AssemblyResolveException:无法解析程序集:Discord.Net.WebSocket,版本=1.0.2.0,Culture=neutral,PublicKeyToken=null at dnlib.DotNet.Extensions.ResolveThrow(IAssemblyResolver self,IAssembly 程序集,ModuleDef sourceModule)在 E:\Source\Public\Confuser2\dnlib\src\DotNet\IAssemblyResolver.cs: Confuser.Core.ConfuserEngine.Inspection(ConfuserContext context) 的第 113 行,在 e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine。 cs:line 264 于上午 7:06 失败,已过 0:01。

为了解释更多,我有 dll,我必须将它们合并到程序中,使用 .NET Reactor 编译器,之后我使用“ConfuserEx”来保护,并得到了那个错误。

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

4

2 回答 2

3

通常可以通过将受影响的程序集作为外部程序集添加到 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" …&gt;
    …
  </rule>
  <module path="test.exe" />
  <module path="Discord.Net.WebSocket.dll" external="true" />
</project>

路径可能不同。

于 2019-03-08T00:12:00.687 回答
0

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

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

在此处输入图像描述

这将打开探针路径对话框。在此对话框中添加您的路径。

在此处输入图像描述

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

于 2019-05-17T13:34:56.180 回答