2

如何使用 Mono.Cecil 将应用程序从控制台应用程序类型修改为 Windows 应用程序类型,反之亦然?

4

2 回答 2

2

要将控制台 .exe 转换为 Windows .exe,您可以使用:

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

另一种方法是选择适当的 ModuleKind 值一样简单。来自塞西尔的消息来源:

public enum ModuleKind {
    Dll,
    Console,
    Windows,
    NetModule,
}
于 2011-09-23T06:42:38.970 回答
0

对于像我这样需要更多帮助的人:)

你可能需要apt pacakgelibmono-cecil-cil-dev

//mono-cecil-set-modulekind-windows.cs
using System;
using Mono.Cecil;

namespace CecilUtilsApp {
    class CecilUtils {
        static void Main(string[] args) {
            var file = args[0];
            var module = ModuleDefinition.ReadModule (file);
            module.Kind = ModuleKind.Windows;
            module.Write (file);
        }
    }
}

// -----
//Makefile
//mono-cecil-set-modulekind-eq-windows.exe:
//    mcs $(shell pkg-config --libs mono-cecil) ./mono-cecil-set-modulekind-windows.cs
./mono-cecil-set-modulekind-windows.exe myprog.exe
于 2020-12-17T04:55:00.270 回答