我想问一下是否可以使用Fody-Costura(将依赖项嵌入可执行文件中)和Obfuscar进行混淆。
目前,我很努力,因为Costura的Visual Studio 2017中的msbuild目标在混淆符之一之前执行(然后提示缺少依赖文件)。
由于obfuscar本身并不提供目标,因此我正在使用MSBuild.Obfuscar。
是否可以通过指定目标的顺序来结合这两种方法?
最佳答案
我创建了一个快速的Framework控制台应用程序项目,并添加了Costura,MSBuild.Obfuscar和NLog。为了使Obfuscar正常工作,我要做的就是编辑Obfuscar.xml
文件以包含实际的程序集名称:
<?xml version="1.0" encoding="utf-8"?>
<Obfuscator>
<Var name="InPath" value="bin\Release" />
<Var name="OutPath" value="$(InPath)\obfuscated" />
<Var name="HidePrivateApi" value="true" />
<!-- was: file="$(InPath)\" -->
<Module file="$(InPath)\ConsoleApp1.exe" />
</Obfuscator>
这对我来说很好。生成的程序集混淆了我的代码,并且还包含NLog作为资源。如果您看到不同的结果,则可能与解决方案中包含的其他特定NuGet软件包有关。