无法解决 exe .Net 的依赖关系
Failed to resolve dependency of exe .Net
你好,我尝试 compile/protect test.exe 项目。
使用 "ConfuserEx"
我得到的错误:
[ERROR] Failed to resolve dependency of 'test.exe'.
Exception: dnlib.DotNet.AssemblyResolveException: Could not resolve assembly: Discord.Net.WebSocket, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null
at dnlib.DotNet.Extensions.ResolveThrow(IAssemblyResolver self, IAssembly assembly, ModuleDef sourceModule) in E:\Source\Public\Confuser2\dnlib\src\DotNet\IAssemblyResolver.cs:line 113
at Confuser.Core.ConfuserEngine.Inspection(ConfuserContext context) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:line 264
Failed at 7:06 AM, 0:01 elapsed.
为了解释更多,我有 dll,我必须将它们合并到程序中,使用 .NET Reactor 编译器,然后我使用 "ConfuserEx" 进行保护,并得到了那个错误。
我相信 Whosebug 开发人员的力量,谢谢。
通常可以通过将受影响的程序集作为外部程序集添加到 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>
路径可能不同。
我通过在 ConfuserEx 设置中添加探测路径解决了这个问题。
在 Visual Studio 中,选择 Tools
> ConfuserEX Probe Paths
。
这将打开探测路径对话框。在此对话框中添加您的路径。
请记住,您必须输入 ConfuserEX 抱怨的 DLL 所在文件夹的确切路径。不幸的是,它不搜索 sub-folders,因此您不能为所有依赖项指定一次 packages
文件夹。
你好,我尝试 compile/protect test.exe 项目。 使用 "ConfuserEx"
我得到的错误:
[ERROR] Failed to resolve dependency of 'test.exe'. Exception: dnlib.DotNet.AssemblyResolveException: Could not resolve assembly: Discord.Net.WebSocket, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null at dnlib.DotNet.Extensions.ResolveThrow(IAssemblyResolver self, IAssembly assembly, ModuleDef sourceModule) in E:\Source\Public\Confuser2\dnlib\src\DotNet\IAssemblyResolver.cs:line 113 at Confuser.Core.ConfuserEngine.Inspection(ConfuserContext context) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:line 264 Failed at 7:06 AM, 0:01 elapsed.
为了解释更多,我有 dll,我必须将它们合并到程序中,使用 .NET Reactor 编译器,然后我使用 "ConfuserEx" 进行保护,并得到了那个错误。
我相信 Whosebug 开发人员的力量,谢谢。
通常可以通过将受影响的程序集作为外部程序集添加到 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>
路径可能不同。
我通过在 ConfuserEx 设置中添加探测路径解决了这个问题。
在 Visual Studio 中,选择 Tools
> ConfuserEX Probe Paths
。
这将打开探测路径对话框。在此对话框中添加您的路径。
请记住,您必须输入 ConfuserEX 抱怨的 DLL 所在文件夹的确切路径。不幸的是,它不搜索 sub-folders,因此您不能为所有依赖项指定一次 packages
文件夹。