【问题标题】:"Edits were made which cannot be compiled" . zero errors and Enable and edit and continue is checked in vs2010“进行了无法编译的编辑”。在 vs2010 中检查了零错误和 Enable and edit and continue
【发布时间】:2016-03-17 06:42:50
【问题描述】:

我可以在调试模式下编辑我的代码,但随后会弹出错误提示

进行了无法编译的编辑。在修复编译错误之前无法继续执行

但错误列表为空,我已检查启用编辑并继续。

我正在使用 vs2010。

清理重启并没有解决问题。

【问题讨论】:

标签: c# visual-studio-2010 debugging


【解决方案1】:

当您的工作区损坏时,可能会出现此问题。只需关闭 Visual Studio,删除(或者最好先重命名).vs 文件夹,然后再次启动 Visual Studio。

它甚至可以在 VS2017 中发生。

【讨论】:

  • VS2019 中的同样问题
  • 删除 .vs 文件夹后,我在更改代码后仍然看到“未能发出模块”。
  • @CoreyAlix: "failed to emit module" 不是这个问题的错误。或许stackoverflow.com/questions/31692729/…可以帮到你?
【解决方案2】:

Visual Studio 2020

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

【讨论】:

【解决方案3】:

这可能是由 Visual Studio 的 Edit & Continue 功能引起的。
一种解决方法是禁用此功能:

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

解决方案取自here

还回复了here

【讨论】:

  • 这个问题有真正的解决方案吗?
  • 编辑并继续不是 ReSharper 功能。
  • 你说得对,它是 Visual Studio 的一项功能。不过,@GaussZ 几乎不值得一票否决
  • 同样的错误(在 v16.11.9 上)刚刚发生在 VS 挂起和崩溃之后。重新启动电脑。问题仍然存在。有一个警告"Feature: 'Edit and Continue' is currently unavailable due to an internal error. Show Stack Trace." 然后显示错误:“Microsoft.ServiceHub.Framework.ServiceActivationFailedException:激活“Microsoft.VisualStudio.LanguageServices.EditAndContinue64”服务失败。---> System.UnauthorizedAccessException:访问路径被拒绝。 [截断] 禁用 启用编辑并继续有效 - 但不能成为真正的解决方案。跨度>
【解决方案4】:

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

【讨论】:

  • 如何安全降级?
【解决方案5】:

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

【讨论】:

  • 删除“.vs”文件夹不起作用,但只需“清洁解决方案”就足够了(无需明确“重建解决方案”。
【解决方案6】:

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

这可能是解决方案中包含的某个项目存在问题。

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

补救措施很简单:

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

【讨论】:

    【解决方案7】:

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

    关闭它会恢复功能。

    【讨论】:

    • 混合模式调试器不允许(显然,因为设置为 Managed 只能修复它)允许在托管代码上编辑并继续。
    • 您能否更清楚地了解这些问题。我尝试了很多组合但没有解决。
    • @PalashKantiBachar 你是什么意思?我会得到与 OP 相同的窗口,发现这是因为 c# 托管代码项目中的“启用本机代码调试”选项。
    • @Willster419 感谢您的回复,我也尝试过相同的方法(使用vs2019最新版本和.net核心)但未能成功。如果我在调试过程中更改代码,它将无法正常工作。
    【解决方案8】:

    我在使用 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
    

    【讨论】:

    • 以上解决方案都没有专门解决这个问题。运行此脚本后,它已修复。它也可能是上述所有工作的结合。
    【解决方案9】:

    据我所知,这种类型的错误消息可能出现在三个类别中:

    1. Visual Studio 设置,如你必须正确设置 Visual Studio IDE 环境
    2. 源代码管理相关
    3. 您的代码方法确实有一个不喜欢在调试模式下编辑的互操作相关 API

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

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

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

    【讨论】:

      【解决方案10】:

      我正在使用迄今为止更新的 Visual Studio 2017 社区。

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

      要删除工作区,FileSource controlAdvancedWorkspaceRemove

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      相关资源
      最近更新 更多