I've a .Net solution with .msi output. Running obfuscation (using Dotfuscate
) throws following error:
PE Signature not found. Is \Release\Output.msi a PE file?
Wondering if Dotfuscate
doesn't support .msi
file obfuscation.
Thanks for your help !
Dotfuscator does not obfuscate .msi
files, only .NET assemblies (.dll
and .exe
files made with C#, F#, or Visual Basic .NET). If you are shipping .NET assemblies in an .msi
, you will need to use Dotfuscator to protect them before they are added to your .msi
.
The easiest way to do this is to integrate Dotfuscator into your app's .exe
project. Then, when you build the project in Visual Studio or MSBuild, Dotfuscator will protect the assemblies in bin\Release
(both the .exe
from the integrated project as well as .dll
s from other projects in your solution), which your .msi
can then pick up as normal. This also allows Dotfuscator to work with other packaged formats, like Xamarin, as this integration runs after the project is compiled but before it is packaged.
(Disclaimer: I work for the Dotfuscator team and am answering as part of my job.)