我正在尝试使用ASP.Net MVC项目编辑并继续使用Visual Studio 2008.我正在运行64位,因此增加了问题.
在Configuration Manager中,我的活动解决方案平台是x86,所有项目也都以Debug x86为目标.
在项目属性中,我选择了"启用编辑并继续".
在工具 - >选项...->调试 - >编辑并继续我选择了"启用编辑并继续".
在工具 - >选项...->调试 - >常规中,我启用了"在一个项目中断时中断所有进程".
一旦我尝试更改视图/模板之外的某些源代码,我就会收到消息:编辑并继续:代码运行时不允许更改,或者如果选项"在一个项目中断时中断所有进程"不可用.可以在"工具","选项","调试"中启用该选项.
任何想法如何让它工作?
我最近看了一下Notch的Ludum Dare直播.在他的游戏中,他广泛使用Eclipse的hotswap功能.(这是我所指的http://www.twitch.tv/notch/b/302823358?t=86m30s的视频)
我想用C#和XNA做同样的事情.幸运的是,Visual Studio具有"编辑并继续"功能.但是,我想在运行时编辑我的渲染代码而不是暂停它.
我可以设置Visual Studio来做同样的事情吗?我注意到有一个复选框Break all processes when one process breaks.是否可以在另一个线程中设置我的渲染循环,以便在我进行更改时游戏保持渲染?
虽然在我的ASP.Net MVC 2项目的Web选项卡上选中了Enable Edit and Continue,但实际上我无法在运行时更改源代码.例如,如果我在调试器中暂停时尝试编辑控制器,则无法更改文件(就像只读一样).
我发现了一个相关的帖子编辑并继续在ASP.NET web项目,但是
我想知道在Visual Studio 2008中调试时是否有办法完全锁定我的代码.代码文件在作为64位应用程序运行时自动锁定,我更喜欢这些; 但是,我的大部分编码都是为Excel创建加载项,即32位.结果是,即使我以'AnyCPU'为目标,VS主机也知道它在32位进程内运行,因此,当代码在Visual Studio中托管时,源代码未被锁定.
我可以通过转到"工具">"选项">"调试">"编辑并继续",然后取消选中"启用编辑并继续"复选框来关闭"编辑并继续".但是,这并不能完全锁定代码.这样可以防止代码中的任何编辑在当前运行中执行,但它不会阻止鼠标单击或击键实际更改代码.
同样,当使用64位应用程序时,这不会发生 - 代码完全被锁定.我非常希望代码完全锁定至少有几个原因:
我可以在调试时不小心碰到一个键或类似物,我绝对不想这样做.这很罕见,但这是一个问题.
我的许多自动化测试通过SendKeys驱动用户界面.但是,当使用调试器逐步完成这样的测试时,我有时会忘记某些方面涉及SendKeys,这意味着击键最终会被发送到Visual Studio IDE而不是Excel.
在上面的问题#2中,单元测试失败,这很好 - 我的不好 - 但是将所有击键发送到代码模块并破坏我的代码是完全不可接受的.
有人有任何想法吗?在针对32位CPU编译时,可以在Visual Studio中运行托管时完全锁定代码吗?
关于这个问题的一些相关帖子,但没有一个直接解决这个问题:
在此先感谢任何帮助或想法......
麦克风
是否可以使用Visual Studio 2010在ASP.NET MVC 3应用程序中编辑和继续?如果是这样,我该怎么做?
顺便说一句,我的操作系统平台是x86.
编辑:当我点击f5然后尝试编辑代码时,我收到以下错误:代码运行时不允许更改,或者如果禁用了"在一个进程中断时中断所有进程"选项.可以在"工具","选项","调试"中启用该选项.
即使启用了该选项,我也无法在代码运行时编辑代码.
asp.net debugging edit-and-continue visual-studio asp.net-mvc-3
在Visual Studio 2010中创建新的Web项目时,我总是忘记启用"编辑并继续",直到"为时已晚".(即直到我在调试时编辑并希望我能够继续).所以我希望默认启用"编辑并继续".
我所指的设置位于项目属性,Web选项卡,"调试器"部分.我发现此设置不存储在.csproj文件中,而是存储在项目的.user文件中,位于名为<EnableENC>的节点中.默认情况下它是'False',但我希望它是'True'.
(这同样适用于VS2008和2005年,但我只需要为VS2010解决它)
我在Visual Studio 2015中调试.NET 4.0应用程序.我的应用程序构建并运行良好,但是当我尝试编辑并在调试器下运行时继续运行时,无论我做了什么更改或在主项目中将它们放在何处,我得到一个对话框说:
编辑是无法编译的.在修复编译器错误之前,执行无法继续.
作为我正在谈论的那种变化的一个例子,我尝试用各种方法添加这一行:
Console.WriteLine("foo");
Run Code Online (Sandbox Code Playgroud)
当我查看Visual Studio的错误列表窗格时,我只看到一个错误CS7038,其描述为"无法发出模块<my app name>".没有给出文件名,行号或字符.我的代码中没有潦草的红色下划线.如果我停止正在运行的应用程序,使用更改进行构建,然后再次运行,则所有内容都会构建并运行正常.因此,构建时编译器和编辑并继续编译器认为可接受的内容之间似乎存在一些差异.
有没有人知道如何在编辑和继续模式下获得有关编译失败原因的更多信息?我读了一些关于附加和调试VBCSCompiler进程的内容,所以我尝试了,但即使抛出所有异常类型设置为break,附加的VS也从未破坏.
我没有共享任何代码,因为这不是关于我的代码的问题,而是关于找出编辑和继续编译器认为错误的策略,并且据我所知,编译器错误的来源可能在我的任何地方整个项目.
编辑:
正如评论中所提到的,我能够将调试器附加到Visual Studio,并在编辑代码后单击"继续"时抛出异常时中断.例外情况是System.NotSupportedException以下消息:"在调试期间不允许更改程序集引用的版本".它列出了有问题的程序集的名称,这是我的应用程序使用的一个小型VB.Net项目,主要在C#中.我正在尝试建立一个MCVE来提交给微软,但目前我无法用一个VB和一个C#项目在一个较小的解决方案中重现问题.
编辑2:
我找到了一个解决方法,并自行回答了问题,以防其他任何人遇到这个奇怪的问题,但我正在为任何能够解释发生了什么的人保留"已回答"的复选标记(为什么编译器认为版本号为在编辑期间引用的项目已更改).
c# edit-and-continue visual-studio roslyn visual-studio-2015
我正在尝试管理编辑并继续工作(在Visual Studio 2015 v14.0.25425.01更新3中)并且它给了我可怕的对话框," 在以下情况下不允许更改: "
附加到不支持编辑并继续附加的进程.
正在调试的代码已经过优化
正在调试的程序集作为域中立加载
正在调试的程序集是通过反射加载的.
启用Intellitrace事件和呼叫信息.
运行此程序的.NET Runtime不支持编辑和继续.
其他一些事情:
我还能尝试什么?
PS.如果VS调试器团队的任何人正在阅读此内容,我可以请求帮忙吗?请删除此对话框并将其替换为指示问题的实际原因的内容.你有调试对象,解决方案,你可以确定哪个导致问题,你可以有一个按钮,只需单击一次即可修复问题.
edit-and-continue visual-studio visual-studio-debugging visual-studio-2015
很抱歉看起来它可能在某个地方的常见问题/博客中有所涉及,但我的Google-fu显然很弱.:(
VS 2010中的调试体验缺少一些东西似乎在VS 11期间(至少,恕我直言)可能会被修复,但是我很难判断它们是否真的在列表中' 或不.
一些想到的东西:
使用本地IIS而不是IIS express进行调试时,是否可以在Visual Studio上启用" 编辑并继续"选项?