我能够在调试模式下编辑我的代码,但随后弹出显示错误,即#34;编辑无法编译。执行不能继续单元编译错误是固定的"但错误列表为空,我已选中启用编辑并继续。 我正在使用vs2010。
清洁和重新启动还没有解决问题。
答案 0 :(得分:2)
这很可能是由Resharper的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
。
要删除工作区,File
→Source control
→Advanced
→Workspace
→Remove
。
答案 8 :(得分:0)
我遇到了同样的问题(VS2017),对我来说,菜单项 Build 并单击 Clean Solution 然后重建解决方案,一切恢复正常。
答案 9 :(得分:0)
到目前为止,据我所知,这种错误消息可能会分为三类:
大多数人可以通过解决#1来解决他们的问题。要确定Studio设置是否正确,只需运行一个很小的新解决方案,然后在调试模式下对其进行编辑。如果那给您同样的错误消息,那么您的问题出在比尔·盖茨(Bill Gates :),那就去修复配置。如果没有错误,请将焦点转移到您自己的代码上。
尝试在解决方案中以单独的方法在调试模式下进行编辑。如果关键部分不在全局区域中,则此错误可能与方法有关。在将问题缩小为一种方法之后,好了,您真幸运。注释掉方法中的大部分或全部内容,并逐渐取消注释行。最终,您将ping通到触发问题的地步。
就我而言,是导致问题的Excel文件应用程序。解决方案:我将Excel应用程序,工作簿和工作表的对象创建为全局变量,并用我的一种主要方法打开并定义了它们。这样做之后,不知何故,比尔·盖茨(Bill Gates)不希望我在调试模式下再无聊。解决Bill的技巧是用一个单独的小方法编写工作簿开头和工作表定义,然后从原始方法中调用它。之后,我可以在调试运行时愉快地编辑big方法中的任何部分!但是,我无法通过仅包含工作簿和工作表处理的小方法来做到这一点。好吧,那是Bill舒适的工作场所:)我不需要。