2011-04-03 60 views
1

我有一個在Visual Studio 2010下編譯的exe文件(它的源代碼項目是一個Windows Form應用程序和C#)。
我必須將此exe文件嵌入到installsheild msi安裝文件中&它可以安裝在任何Windows操作系統上(支持XP和更高版本)。但爲了運行我的exe,最終用戶首先必須在他們的系統上安裝Microsoft .NET Framework 4。 我正在尋找一個解決方案,將我的.NET本機exe文件轉換爲不需要安裝.NET Framework即可執行的無.NET版本的exe文件。
有沒有辦法做到這一點? (我的意思是一種方式EXPECT mono-project如何將.NET EXE轉換爲不需要.NET Framework運行的Windows二進制文件?

+0

可能的重複[有什麼方法可以將.NET應用程序編譯爲本地代碼?](http://stackoverflow.com/questions/45702/is-there-some-way-to-compile-a-net -application-to-native-code) – 2011-04-03 16:39:25

+4

簡答題 - 沒有。 – 2011-04-03 16:39:49

+1

即使技術上可行(說虛擬化註冊表和磁盤,我甚至沒有提及支持問題...),該許可證會阻止您重新分發所需的.NET程序集。他們*必須*由微軟的官方設置安裝。 – 2011-04-03 16:45:35

回答

1

單聲道支持提前編譯,至少在某些平臺上。你也可以在你的程序中部署mono。但我不確定Mono是否支持Windows上的WinForms。

我不認爲微軟的.NET實現支持這種部署,所以你運氣不好。

0

您無法創建無.NET應用程序,但可以嘗試儘可能減少.NET版本要求,方法是使用ILMerge實用程序。例如,我成功地將它用於減少從.NET 4.5到4.0的三方工具需求。

的工具有很多參數,但通常都做了什麼你需要的是以下幾點:

ILMerge.exe /v4 /useFullPublicKeyForReferences /out:target.exe source.exe sourceLib1.dll sourceLib2.dll 

現在確定它是否是你的問題,但它可能在某些情況下幫助。

相關問題