2009-06-05 36 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中运行。