Dotfuscator - 混淆 .msi 文件吗?

Dotfuscator - does obfuscate .msi file?

我有一个带有 .msi 输出的 .Net 解决方案。 运行 混淆(使用 Dotfuscate)抛出以下错误:

PE Signature not found.  Is \Release\Output.msi a PE file?

想知道 Dotfuscate 是否不支持 .msi 文件混淆。

感谢您的帮助!

Dotfuscator 不会混淆 .msi 文件,只会混淆 .NET 程序集(.dll.exe 使用 C#、F# 或 Visual Basic .NET 制作的文件)。如果您在 .msi 中运送 .NET 程序集,您将需要使用 Dotfuscator 来保护它们,然后再将它们添加到您的 .msi.

最简单的方法是 integrate Dotfuscator into your app's .exe project。然后,当您在 Visual Studio 或 MSBuild 中构建项目时,Dotfuscator 将保护 bin\Release 中的程序集(集成项目中的 .exe 以及其他项目中的 .dlls您的解决方案中的项目),然后您的 .msi 可以正常获取这些项目。这还允许 Dotfuscator 与其他打包格式(如 Xamarin)一起使用,因为此集成在项目编译之后但在打包之前运行。

(免责声明:我在 Dotfuscator 团队工作,作为我工作的一部分回答。)