我正在使用 .Net Reactor 来混淆我的项目。在我的项目中,我有大约 10 个 dll。我希望我的设置在客户端机器上部署混淆的 dll。
我尝试将下面的代码放在设置项目属性的构建后事件中。
"C:\Program Files\Eziriz\.NET Reactor\dotNET_Reactor.exe" -project "E:/s.nrproj"
但是当我部署它并尝试在 Reflector 中打开部署的 dll 时,它会打开并显示代码。我在哪里/我错过了什么???
我正在使用 .Net Reactor 来混淆我的项目。在我的项目中,我有大约 10 个 dll。我希望我的设置在客户端机器上部署混淆的 dll。
我尝试将下面的代码放在设置项目属性的构建后事件中。
"C:\Program Files\Eziriz\.NET Reactor\dotNET_Reactor.exe" -project "E:/s.nrproj"
但是当我部署它并尝试在 Reflector 中打开部署的 dll 时,它会打开并显示代码。我在哪里/我错过了什么???
Dot Net Reactor 混淆了 exe 和 dll 并将它们存储在不同的位置。默认是程序集所在的子文件夹 Secured。确保在您的部署方案中采用安全的,而不是原始的!
您应该在构建安装项目之前混淆您的程序集,因此您应该在 Pre-Build 而不是 Post-Build 中使用您的命令。当您混淆您的程序集时,.NET 可能无法自动识别您所需的程序集。我强烈建议单独混淆您的程序集,然后创建您的安装项目(确保将所有必需的程序集添加到您的项目中)。
注意:在 VS2010 中创建安装项目存在一些错误,有时会关闭和打开 Visual Studio 作品。
在这种情况下,构建后事件不起作用。您可以使用 .NET Reactor VS 插件在正确的时间混淆程序集。解决方案在这里描述: 解决方案
这对我有用:
if /I "$(ConfigurationName)" == "Release" "C:\Program Files (x86)\Eziriz\.NET Reactor\dotNET_Reactor.Console.exe" -file "$(TargetPath)" -targetfile "$(TargetPath)" -q
如果你想设置 config proj 然后像这样添加它:
-project "$(SolutionDir)obfuscation_settings.nrproj"
鉴于 .net reactor 项目位于解决方案文件夹中,其名称为 obfuscation_settings.nrproj
祝你好运