2014-05-12 32 views
2

我在C#上有一個Windows控制檯應用程序,我試圖本機編譯,因爲我需要它在沒有.Net 4.0的機器上運行。我使用ngen.exe並抓取輸出(myproject.ni.exe)和DLL,但是當我將它複製到另一臺機器並嘗試運行exe時,它說它不是有效的win32應用程序。我錯過了什麼嗎?C#可執行文件的Ngen輸出無效Win32應用程序

謝謝。

+2

Ngen必須始終在目標機器上運行,複製本機圖像是錯誤的。它不是**一種解決方法,用於缺少.NET安裝,並且本機映像不是可執行程序。 .NET早期曾經有過「連接器」,但它們無法與安裝在任何地方並免費提供的軟件競爭。 –

+0

非常感謝Hans,看起來我對Ngen做了什麼誤解。 – Shahab78

回答

3

是的,NGen不會生成可執行文件/原生DLL,它確實會生成pre-JIT-ed代碼以用於.Net程序集。

還有其他工具(即參見Compiling C# to Native?)可能創建.Net程序集的獨立可執行文件,但NGen不是其中之一。

+0

謝謝阿列克謝,非常翔實的答案。 – Shahab78

相關問題