我想问一下,是否可以使用福迪-科斯特拉 (将依赖项嵌入到可执行文件和奥布斯卡尔中)进行混淆。
目前,我还在挣扎,因为Costura的Visual 2017中的msbuild目标在模糊库之前执行(然后抱怨缺少依赖文件)。
由于混淆器本身不提供目标,我使用的是MSBuild.Obfuscar。
有没有办法将这两者结合起来,也许可以通过指定目标的顺序来实现?
发布于 2018-03-06 03:58:58
我创建了一个快速框架控制台应用程序项目,并添加了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包有关。
发布于 2018-03-14 13:45:23
我能够重现这个错误。我使用了asherber的答案,但一旦我更改了构建发布,它就不再起作用了。
(“无法解决依赖: MahApps.Metro")
为了使它即使在发行版上也能成功构建,我必须将引用的MahApps.Metro.dll复制到发布文件夹中。
如果从NuGet安装,则可以在项目文件夹中的packages文件夹中找到.dll。
https://stackoverflow.com/questions/48853290
复制相似问题