Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;所做的编辑无法编译。在vs2010中选中零错误和启用、编辑并继续_C#_Visual Studio 2010_Debugging - Fatal编程技术网

C# &引用;所做的编辑无法编译。在vs2010中选中零错误和启用、编辑并继续

C# &引用;所做的编辑无法编译。在vs2010中选中零错误和启用、编辑并继续,c#,visual-studio-2010,debugging,C#,Visual Studio 2010,Debugging,我可以在调试模式下编辑我的代码,但弹出窗口显示错误“编辑无法编译。在修复编译错误之前,执行无法继续”,但错误列表为空,并且我已选中“启用编辑并继续”。 我正在使用vs2010 清洁和重新启动并没有解决问题 我在Visual Studio 2008、2010和2013中遇到了这个问题。当出现此问题时,我为每个项目编写了一个批处理文件,保存在解决方案文件夹中。扩展Vijay所说的内容,这将清除bin和obj文件夹。有时VisualStudio会锁定文件夹,我必须将其关闭,但在我清除这些文件夹后,问题

我可以在调试模式下编辑我的代码,但弹出窗口显示错误“编辑无法编译。在修复编译错误之前,执行无法继续”,但错误列表为空,并且我已选中“启用编辑并继续”。 我正在使用vs2010


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

我在Visual Studio 2008、2010和2013中遇到了这个问题。当出现此问题时,我为每个项目编写了一个批处理文件,保存在解决方案文件夹中。扩展Vijay所说的内容,这将清除bin和obj文件夹。有时VisualStudio会锁定文件夹,我必须将其关闭,但在我清除这些文件夹后,问题就消失了。。。有一段时间。我不确定根本原因,我相信二进制文件和内存中的代码不知怎么地不同步了。但这允许快速关闭、清洁、打开解决方案

@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

我正在使用截至目前更新的Visual Studio 2017社区

在花了数小时尝试发布的所有解决方案后,唯一有效的解决方案是删除工作区并再次
Map&Get


要删除工作区,
文件
→ <代码>源代码管理→ <代码>高级→ <代码>工作区→ <代码>删除

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

VS2017甚至可能出现这种情况。

我也遇到过同样的问题(VS2017),对我来说,菜单项Build和单击Clean Solution就足够了
然后重新生成解决方案,一切正常。

这可能是由于Visual Studio的
编辑并继续
功能造成的。
解决方法是禁用此功能:

Debug --> Options --> Debugging --> General --> uncheck Enable Edit and Continue
解决方案取自


也回答了。

到目前为止,据我所知,这种类型的错误消息可能出现在三种类型中:

  • VisualStudio设置,就像您必须正确设置VisualStudioIDE环境一样
  • 与源代码管理相关
  • 您的代码方法确实有一个互操作相关的API,它不喜欢在调试模式下编辑
  • 大多数人可以通过经历1来解决他们的问题。要确保Studio设置是否正确,只需运行一个新的非常小的解决方案,并在调试模式下对其进行编辑。如果这给你同样的错误信息,那么你的问题是比尔·盖茨:),去修复配置。如果没有错误,请将焦点转移到您自己的代码

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


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

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


    关闭它会恢复功能。

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

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

    @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
    
    我和我的一个同事遇到了完全相同的问题,而罪魁祸首是我们.sln文件中的一个项目;与同一解决方案文件中的多个其他项目一起启动的WinForms应用程序

    补救办法很简单:


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

    在Visual Studio 2020中

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

    Visual Studio 2019 16.9中似乎存在影响此功能的回归。如果您遇到此问题,请检查以了解修复程序何时可用。 对于企业版/专业版,建议降级至16.8。
    希望这能帮助遇到此错误的人(像我一样),因为这是搜索中出现的第一篇SO帖子。

    尝试删除您的垃圾箱,并在此处重新编译相同的问题。。你找到什么了吗?我有同样的问题。以及如何修复它。发生在VS2019 v16.9.4中,链接到它发生在我身上2019@KirstenGreed这个变通方法对你有帮助吗?记录在案是很有用的。事实上,我的问题是与Resharper有关。这个问题有真正的解决方案吗?编辑并继续不是一个重竖琴功能。你是对的,它是一个Visual Studio功能。不过,几乎不值得投反对票,@Gausszz以上的任何解决方案都无法解决这个问题。在我运行这个脚本之后,它被修复了。它也可能是执行上述所有操作的组合。VS2019中的同一问题在删除.vs文件夹后,我在更改代码后仍然看到“未能发出模块”。@CoreyAlix:“未能发出模块”不是此问题的错误。也许可以帮助你?混合模式调试器没有(显然,因为