Microsoft已解释说,他们不支持在Visual Studio 2010中的x64 CLR下编辑和继续:
在VS2010 for .NET 4.0中创建新的Visual C#控制台应用程序时,该项目的默认目标设置是以x86平台为目标而不是像Visual Studio 2008那样的任何CPU(MSIL)
[...]
不幸的是,为64位CLR添加了对EnC的真正支持,考虑到将平台目标更改为x86的工作,大型工作项和其他功能优先于此.
(来自http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=455103)
Microsoft Connect上的描述使得64位Edit and Continue看起来好像是一个重大的体系结构更改.我的问题是:x64有什么不同让EnC变得困难?
除了"64位EnC不起作用"之外,我在网络上的技术细节方式上找不到太多东西.
当我尝试这样做时,我收到以下错误:
不允许更改64位应用程序.
@Wilka:在我选择工具>选项>项目和解决方案>常规并选中"显示高级构建配置"之前,该选项不可用.虽然我从你的MSDN链接中找到了这个提示.因此,如果您编辑评论,我可以将其作为接受的答案......
谢谢大家!
请看我对这个问题的第一个评论,它不存在......不知怎的......我可以选择目标框架(2.0,3.0和3.5),而不是我看到对这个特定问题的任何使用...
它不一定是64位程序,实际上,我更喜欢它是32位,因为它更像是一个实用程序,它应该在32位系统上工作.
另外,我在64位运行Vista.也许这与它有关?
@Rob Cooper:现在我想起来了,在创建解决方案/项目/应用程序时,我从未有机会选择64位或32位应用程序......根据您的链接"64位调试(X64)"是有可能与MS VB2008快递版.
哦顺便问一下,我发现了以下内容:
如果要调试64位应用程序并希望使用"编辑并继续",则必须更改目标平台并将应用程序编译为32位应用程序.您可以通过打开"项目属性"并转到"编译"页面来更改此设置.在该页面上,单击"高级编译选项",然后在"高级编译器设置"对话框中将"目标CPU"设置更改为x86.链接
但我没有看到目标CPU设置......
我想知道在Visual Studio 2008中调试时是否有办法完全锁定我的代码.代码文件在作为64位应用程序运行时自动锁定,我更喜欢这些; 但是,我的大部分编码都是为Excel创建加载项,即32位.结果是,即使我以'AnyCPU'为目标,VS主机也知道它在32位进程内运行,因此,当代码在Visual Studio中托管时,源代码未被锁定.
我可以通过转到"工具">"选项">"调试">"编辑并继续",然后取消选中"启用编辑并继续"复选框来关闭"编辑并继续".但是,这并不能完全锁定代码.这样可以防止代码中的任何编辑在当前运行中执行,但它不会阻止鼠标单击或击键实际更改代码.
同样,当使用64位应用程序时,这不会发生 - 代码完全被锁定.我非常希望代码完全锁定至少有几个原因:
我可以在调试时不小心碰到一个键或类似物,我绝对不想这样做.这很罕见,但这是一个问题.
我的许多自动化测试通过SendKeys驱动用户界面.但是,当使用调试器逐步完成这样的测试时,我有时会忘记某些方面涉及SendKeys,这意味着击键最终会被发送到Visual Studio IDE而不是Excel.
在上面的问题#2中,单元测试失败,这很好 - 我的不好 - 但是将所有击键发送到代码模块并破坏我的代码是完全不可接受的.
有人有任何想法吗?在针对32位CPU编译时,可以在Visual Studio中运行托管时完全锁定代码吗?
关于这个问题的一些相关帖子,但没有一个直接解决这个问题:
在此先感谢任何帮助或想法......
麦克风
我在Win 8.1 x64上使用VS 2013 Ultimate和Update 2,VS不会让我使用编辑并继续使用简单的控制台应用程序.控制台应用程序设置为使用.net 4.5.1和AnyCPU,但每当我尝试在调试时更改代码时,我会得到可怕的"不允许更改为64位应用程序"消息框.
我已尝试确保在工具 - >选项中启用了编辑和继续.我已经尝试过再打开它......没有好处.我已经尝试禁用我的所有VS扩展......没有任何区别.我已经尝试重置为默认的VS设置...不.我试过修复我的VS安装......没什么.我已经尝试验证我的.net框架安装......它说我的安装已经过验证但我仍然遇到同样的问题.
有人见过这个吗?
.net edit-and-continue visual-studio .net-4.5 visual-studio-2013