Search code examples
c#windowsmonoconsolemono.cecil

Change application type with Mono.Cecil?


How can I modify an application from Console Application Type to Windows Application Type and vice versa with Mono.Cecil?


Solution

  • To convert a console .exe to windows .exe, you can use:

    var file = "foo.exe";
    var module = ModuleDefinition.ReadModule (file);
    // module.Kind was previously ModuleKind.Console
    module.Kind = ModuleKind.Windows;
    module.Write (file);
    

    The other way around is as simple as choosing the appropriate ModuleKind value. From Cecil's source:

    public enum ModuleKind {
        Dll,
        Console,
        Windows,
        NetModule,
    }