我正在使用 .net7 用 C# 开发一个小项目,最终使用 AOT 编译将其编译为 C++ 代码。发布项目时,我想对C#代码进行混淆,并将混淆后的代码发送给本机编译。 是否可以做到这一点,如果可以,如何做到。或者知道朝哪个方向迈进以实现这一目标会很好。
我尝试将混淆过程嵌入到 Target MSBuild 中。在这种情况下,我得到了混淆的 C# 代码,但生成的 C++ 代码仍然未混淆。
您可以在将 IL 编译为本机代码之前执行命令。这是项目配置文件的示例代码。
<Target Name="Obfuscation" BeforeTargets="IlcCompile">
<Exec Command="dotnet run --project $(ProjectDir)..\Obfuscation\Obfuscation.csproj -- $(ProjectDir)$(IntermediateOutputPath)$(AssemblyName).dll" />
</Target>