多年来,我一直在使用 Visual Studio 2010。我有一个相当复杂的 VB.net 项目,我经常对其进行更改。最近,每当我在调试模式下进行更改时,它都会抛出一个System.InvalidProgramException - Common Language Runtime detected an invalid program
错误,迫使我停止运行程序,然后在我保存更改后重新启动它。
- 仅当我对另一个子或函数调用的子或函数进行更改时,才会发生此问题。例如,如果我对按钮单击事件进行更改,这很好,但如果我对按钮调用的函数进行更改,则会出错。
- 像在我的代码中添加空行这样简单的更改就会导致这种情况发生。根本没有代码更改...只是按字面意思按回车键在代码行之间添加空白行。
- 我安装了 Visual Studio 2013,认为它可以解决这个问题。它不是。我仍然得到同样的错误。
- 我尝试将我的项目文件移动到不同的硬盘驱动器,我仍然得到相同的错误。
- 我想也许我有损坏的内存,所以我运行了一个完整的检查磁盘和碎片整理,但我仍然得到同样的错误。
- 我已经阅读了非常大的过程或具有大量变量的项目可能会发生此错误的位置(尽管我认为这已在较新的 .NET 版本中得到修复),因此我已经清理了我的代码。最大的模块有 30k 行。
解决方法是停止项目运行,保存我的更改,然后重新启动它......但是,这需要时间,因为我的程序在运行时必须重新初始化所有内容,所以我希望能够在调试时进行更改。
另外,我安装了 .NET 框架 4.5
更新:我从一个月前加载了我的代码备份并且运行良好......所以显然我最近所做的一些更改导致了这个错误。一旦我弄清楚发生了什么变化,我会更新它以供将来参考,以防其他人遇到同样的问题。