我有一个使用 .NET Reactor v.6.0.0.0 混淆的 .NET Core 3.0.100 程序集。
所述主程序集依赖于其他程序集,这些程序集通过使用 Reactor命令与它一起打包和混淆:
-satelite_assemblies [path/s]
-merge 1
使用 dotPeek 并反编译程序集,我可以看到所有正确的 .dll 都包含在主程序集中并与它一起被混淆 - 到目前为止一切都很好。
当仅构建(而不是混淆)主 .dll 时,它还有一个 [name].deps.json 文件,它告诉它在哪里以及在哪里可以找到其他程序集(标准 .NET Core 过程)。
在混淆程序集(包含所有其余部分)中,该文件不再有效(也无法包含),因为程序集的“位置”现在已更改,因此在运行混淆的 .dll 时,我们在控制台中收到错误消息找不到依赖的 .dll。
我们如何使用 .NET Reactor 混淆和合并多个 .dll 并且仍然让主程序集知道在哪里可以找到它们?
- 是否需要对 [name].deps.json 进行手动更改,如果需要,是什么类型的?
- 有没有办法使用 .NET Reactor 自动指定它或以某种方式包含它(-satellite_assemblies 只接受 .dll 和 .exe 文件)?
- 依赖 [name].deps.json 文件时, 是否只能在不合并它们的情况下混淆它们?