所以,據我所知,它確實需要一個在MSIL
中編寫的可執行文件/ dll文件,並執行JIT作業:將MSIL代碼轉換爲本地機器代碼。對? 所以跑ngen
使用命令生成我的程序的本機映像:ngen如何運作?
ngen install myProgram.exe
這需要一段時間,但我發現生成的文件是在C:\Windows\assembly\NativeImages_v4.0.30319_32\myProgram\db1496cf0295bbe6a9242d86c0d8e091\myProgram.ni.exe
但是,什麼是該可執行文件的確切內容?我的C#程序的機器代碼版本?它不運行(見下文)。如果我想向用戶提供我的程序的本地版本,如果我在每個*.exe
和*.dll
中運行ngen
並將該圖像文件生成給用戶,它會正常運行嗎?它仍然需要.NET框架嗎?
但是,生成圖像不起作用,並給出「此應用程序無法在您的PC上運行」錯誤消息。
好問題!如果你現在有任何好的解決方案,我真的很好奇。或者,您是否嘗試過Mono項目的AOT編譯? – Jenix 2015-11-27 09:54:44