C# “错误”;oldIndex必须是子集合中的有效索引;在visual studio 2012中打开源文件时

C# “错误”;oldIndex必须是子集合中的有效索引;在visual studio 2012中打开源文件时,c#,debugging,visual-studio-2012,C#,Debugging,Visual Studio 2012,我偶尔会在Visual Studio 2012中收到一个模式弹出窗口,出现以下错误: oldIndex必须是子集合中的有效索引 参数名称:oldIndex 实际值为-1 我发现的那个错误的唯一参考是在,但我认为它与Resharper无关。在我的例子中,这似乎发生在我开始调试之后,出于某种原因,调试器突然无法找到源文件,甚至在“进入”时也无法找到。尝试手动打开它们失败,在调试期间没有任何消息,在我停止调试后,会出现上述消息 我(还)没有能够始终如一地再现这一点。尽管如此,我还是认为有必要提出一个问

我偶尔会在Visual Studio 2012中收到一个模式弹出窗口,出现以下错误:

oldIndex必须是子集合中的有效索引

参数名称:oldIndex

实际值为-1

我发现的那个错误的唯一参考是在,但我认为它与Resharper无关。在我的例子中,这似乎发生在我开始调试之后,出于某种原因,调试器突然无法找到源文件,甚至在“进入”时也无法找到。尝试手动打开它们失败,在调试期间没有任何消息,在我停止调试后,会出现上述消息

我(还)没有能够始终如一地再现这一点。尽管如此,我还是认为有必要提出一个问题,以防其他人看到它和/或有可能的解决方案。如果我能始终如一地复制它,我可能应该在MicrosoftConnect上提交一份错误报告

一旦这个错误弹出,很快就再也没有文件打开了,所有这些都会引发相同的错误。只有重新启动Visual Studio后,我才能继续正常操作。

根据的建议,我添加了迄今为止唯一有帮助的答案,但我认为这不是真正的答案。如果有合适的答案,我会接受


解决方案:重新启动Visual Studio:(.

卸载Jetbrains Resharper在VS 2013 Professional中对我有效。

它与Resharper无关。我没有在VS 2012中安装它,此错误仍然偶尔会弹出。最常见的情况是在打开文件、设置调试断点并附加到进程时发生。该文件将消失,无法再次打开(ctrl+Tab,从解决方案浏览器打开)。停止调试会话并双击隐藏的文件-将弹出错误消息。@Alespotocnikhahaonina:当时看起来像是Microsoft在VS中的一个错误。刚刚遇到另一个奇怪的错误。我打开了两个VS 2012实例,两个实例都加载了相同项目的一部分。我为其中一个共享项目添加了一个新属性(AttributeUsage=class)。然后我尝试在VS的同一个实例中向MVC项目添加一个新控制器,它弹出一条错误消息,说它无法加载我刚才添加的类。我猜它需要它来“添加控制器”对话框,但它应该能够加载它。因此,我的观点是,在VS本身而不是R#中存在大量其他错误。我记得在调试后也经常遇到该错误,自从升级到VS 2013以来,从未见过它。因此,升级,并转到一组新的调试器错误:)如果该错误经常发生,您可以尝试使用其他VS实例调试VS。当该错误发生时,调用堆栈可能会提供信息。通常我会对WPF designer错误这样做,在您的情况下我不知道,但我会尝试。在我的情况下,该问题相当持久。即使在重新启动后也没有帮助:(顺便说一句,重新启动windows后我回来了,它可以正常工作:)这很奇怪,但是如果重新启动VS没有帮助,重新启动Windows!哈哈!!通过重新启动VS问题解决了。但是仍然有问题为什么会出现这个问题?到底发生了什么?@onkar,我不知道,考虑到这是一个非常旧的VS版本,我怀疑它现在是否会受到微软的重视。除非你说它仍然发生在lat上est版本?仍然在VS2019中出现!!谢谢,也许这对其他人有帮助。虽然几乎没有人再使用VS2013了,但现在是VS2019(而且是免费的)。