Dot-Net
是否可以將 .NET IL 程式碼編譯為機器程式碼?
我想在沒有 .NET 框架的情況下分發我的 .NET 程序。是否可以將 .NET 程序編譯為機器程式碼?
是的,您可以使用 Ngen.exe 進行預編譯,但這並不能消除 CLR 依賴性。
您還必鬚髮布 IL 程序集,Ngen 的唯一好處是您的應用程序可以在不呼叫 JIT 的情況下啟動,因此您可以獲得真正的快速啟動時間。
根據 CLR 通過 C#:
此外,使用 Ngen 預編譯的程序集通常比 JIT 程序集慢,因為 JIT 編譯器可以優化目標機器(32 位?64 位?特殊寄存器?等),而 NGEN 只會產生基線編譯。
編輯:
關於來自 CLR Via C# 的上述資訊存在一些爭論,因為有人說您只需要在目標機器上執行 Ngen 作為安裝過程的一部分。