"进行了编辑,无法编辑" 。在vs2010中检查零错误和启用以及编辑和继续

时间:2016-03-17 06:42:51

标签: c# visual-studio-2010 debugging

我能够在调试模式下编辑我的代码,但随后弹出显示错误,即#34;编辑无法编译。执行不能继续单元编译错误是固定的"但错误列表为空,我已选中启用编辑并继续。 我正在使用vs2010。

清洁和重新启动还没有解决问题。

10 个答案:

答案 0 :(得分:2)

这很可能是由R​​esharper的Edit & Continue功能引起的。
一种解决方法是禁用此功能:

Debug --> Options --> Debugging --> General --> uncheck Enable Edit and Continue

解决方案取自here

也回答了here

答案 1 :(得分:2)

Visual Studio 2019 16.9 中似乎存在影响此功能的回归。如果您遇到此问题,请检查 https://developercommunity.visualstudio.com/t/Edits-were-made-to-the-code-which-canno/1370525#T-ND1386337 以了解修复何时可用。 对于企业版/专业版,建议降级到 16.8。 希望这可以帮助遇到此错误的人(如我自己),因为这是搜索中出现的第一篇 SO 帖子。

答案 2 :(得分:1)

我在Visual Studio 2008,2010和2013中遇到了这个问题。当这个问题出现时,我写了一个批处理文件,我保存在每个项目的解决方案文件夹中。扩展Vijay所说的,这清除了bin和obj文件夹。有时Visual Studio会锁定文件夹,我必须将其关闭,但在我清除这些文件后,问题就会消失......有一段时间了。我不确定其根本原因,我相信二进制文件和内存中的代码会以某种方式失去同步。但这可以提供快速,干净,开放的解决方案。

@echo off
cls
dir bin /s /AD /b > clean.tmp
dir obj /s /AD /b >> clean.tmp
for /F  "tokens=*" %%A in (clean.tmp) do echo rmdir /S /Q "%%A" 
echo This command will remove ALL BIN and OBJ folders in this tree.
echo To run the commands as listed ...
pause
for /F  "tokens=*" %%A in (clean.tmp) do rmdir /S /Q "%%A" 
del clean.tmp
pause

答案 3 :(得分:1)

当您的工作区损坏时,可能会发生此问题。只需关闭Visual Studio,删除(或者更好地重命名)times文件夹并再次启动Visual Studio。

VS2017甚至可以实现。

答案 4 :(得分:1)

我在一个C#项目中也遇到了这个问题。原来是因为我最近启用了“启用本机代码调试”选项。

将其关闭可恢复功能。

答案 5 :(得分:1)

还有另一个可能的罪魁祸首:

解决方案中包含的项目之一可能存在问题。

我和我的一位同事遇到了完全相同的问题,罪魁祸首是我们 .sln 文件中的项目之一;一个 WinForms 应用程序,该应用程序也与同一解决方案文件中的其他几个项目相关联。

补救方法很简单:

从解决方案中删除 WinForms 项目,并启动一个单独的 Visual Studio 实例,其中 WinForm 项目与其余项目分开。然后它起作用了。我认为在运行 WinForms 应用程序时编辑了一些文件,出于某种原因更改了代码。

答案 6 :(得分:1)

Visual Studio 2020

Debug --> Options --> Debugging --> General --> uncheck Enable Edit and Continue

答案 7 :(得分:0)

我使用的Visual Studio 2017社区已更新至今。

尝试在this thread highlighted by Hao Nguyen in the comments above中发布的所有解决方案花了几个小时后,唯一有效的解决方案是再次移除工作区和Map&Get

要删除工作区,FileSource controlAdvancedWorkspaceRemove

答案 8 :(得分:0)

我遇到了同样的问题(VS2017),对我来说,菜单项 Build 并单击 Clean Solution 然后重建解决方案,一切恢复正常。

答案 9 :(得分:0)

到目前为止,据我所知,这种错误消息可能会分为三类:

  1. Visual Studio设置,就像您必须正确设置Visual Studio IDE环境一样
  2. 与源代码管理相关
  3. 您的代码方法确实具有与互操作相关的API,不希望在调试模式下进行编辑

大多数人可以通过解决#1来解决他们的问题。要确定Studio设置是否正确,只需运行一个很小的新解决方案,然后在调试模式下对其进行编辑。如果那给您同样的错误消息,那么您的问题出在比尔·盖茨(Bill Gates :),那就去修复配置。如果没有错误,请将焦点转移到您自己的代码上。

尝试在解决方案中以单独的方法在调试模式下进行编辑。如果关键部分不在全局区域中,则此错误可能与方法有关。在将问题缩小为一种方法之后,好了,您真幸运。注释掉方法中的大部分或全部内容,并逐渐取消注释行。最终,您将ping通到触发问题的地步。

就我而言,是导致问题的Excel文件应用程序。解决方案:我将Excel应用程序,工作簿和工作表的对象创建为全局变量,并用我的一种主要方法打开并定义了它们。这样做之后,不知何故,比尔·盖茨(Bill Gates)不希望我在调试模式下再无聊。解决Bill的技巧是用一个单独的小方法编写工作簿开头和工作表定义,然后从原始方法中调用它。之后,我可以在调试运行时愉快地编辑big方法中的任何部分!但是,我无法通过仅包含工作簿和工作表处理的小方法来做到这一点。好吧,那是Bill舒适的工作场所:)我不需要。