2009-06-05 40 views
33

微軟對此的解釋是,他們將不會支持編輯,然後在Visual Studio 2010中的64位CLR下繼續:爲什麼不編輯並繼續在x64 CLR上工作?

用於.NET 4.0中創建一個VS2010新的Visual C#控制檯應用程序時,將默認目標設置該項目的目標,而不是任何CPU(MSIL)如Visual Studio 2008確實

[...]

增加對ENC真正支持64位CLR的x86平臺是不幸的是,大的工作項而其他功能則優先考慮將平臺目標更改爲x86的工作。

(從http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=455103

Microsoft Connect上的描述使它看起來好像64位編輯並繼續是一項重大的架構變化。我的問題是:什麼是不同的X64,使EnC困難?

除了「64位EnC無法正常工作」之外,我一直未能在Web上找到技術細節。

+2

2013年6月26日發佈的博客:http://blogs.msdn.com/b/dotnet/archive/2013/06/26/announcing-the-net-framework-4-5-1-preview.aspx`「我們現在在Visual Studio 2013 Preview中提供了x64編輯並繼續(EnC)「` – gmaran23 2013-07-22 12:13:11

回答

19

編輯並繼續要求編譯器修補正在運行的可執行文件。這通常是通過替換所有更改的功能來完成的。顯然,它的JITted版本也必須被丟棄,並且調用者可能調整到可能的新位置。

對於x64,這並不是特別困難,可能與x86上一樣困難。但是與x86不同的是,這還沒有完成。而x86和x64之間的差異足夠大,你不能簡單地把86 ENC代碼,並改變每4在8

+5

這是一個合理的解釋。但是鑑於VS2005,VS2008和現在的VS2010已經有了32位的EnC,並且這些新框架和IDE中的每一個在其他領域都有各種令人印象深刻的新功能,我想知道他們是否能夠找到一點時間花在64位EnC上。 – 2009-06-05 14:35:33

0

似乎新的.NET框架支持這一點。從.NET Framework 4.5.1 Preview

在.NET Framework 4.5.1預覽細節部分......包括這些 顯著...增強功能:

...
64位編輯並繼續
..

仍然無法在安裝了.NET 4.5.1 Preview的Visual Studio 2012中運行。