Dot-Net

是否可以將 .NET IL 程式碼編譯為機器程式碼?

  • September 26, 2008

我想在沒有 .NET 框架的情況下分發我的 .NET 程序。是否可以將 .NET 程序編譯為機器程式碼?

是的,您可以使用 Ngen.exe 進行預編譯,但這並不能消除 CLR 依賴性。

您還必鬚髮布 IL 程序集,Ngen 的唯一好處是您的應用程序可以在不呼叫 JIT 的情況下啟動,因此您可以獲得真正的快速啟動時間。

根據 CLR 通過 C#:

此外,使用 Ngen 預編譯的程序集通常比 JIT 程序集慢,因為 JIT 編譯器可以優化目標機器(32 位?64 位?特殊寄存器?等),而 NGEN 只會產生基線編譯。

編輯:

關於來自 CLR Via C# 的上述資訊存在一些爭論,因為有人說您只需要在目標機器上執行 Ngen 作為安裝過程的一部分。

引用自:https://stackoverflow.com/questions/140750