Visual Studio 忘记窗口设置并且造成混乱。

66

我有一个问题,就是我打开Visual Studio时,内部窗口都散布在各个地方。它们中没有一个被停靠;一些应该可见的窗口变得不可见,反之亦然。然后我就得花费很长时间将窗口重新调整到我喜欢的位置。

这个问题似乎只会在某些解决方案中出现,并且最近才出现。

我真的想不出如何解决这个问题。还有其他人经历过这种情况吗?


4
有时我也会遇到类似的问题,但只有在使用多个Visual Studio实例时出现,并且幸运的是,只有其中一个实例会出现问题。因此,我确保先关闭混乱的Visual Studio,最后再关闭保存我的设置的那个实例。这样我就避免了恢复我的设置所带来的痛苦。 - Juozas Kontvainis
如果我有两个或更多的VS实例,并且在调试视图之间来回切换,我往往会遇到这个问题。最终,在某个时刻,其中一个窗口会突然取消停靠。 - CodingWithSpike
12个回答

70

看起来 Visual Studio 无法在多次使用之间保留您的设置,可能是与您的 Visual Studio 设置文件有关的问题。

我建议的解决方案是首先重置所有设置,然后自定义个人偏好并最终备份这些定制的设置。备份的目的是可以在需要时快速恢复你满意的设置。以下步骤展示了如何操作,并希望能够解决 Visual Studio 设置问题:

  1. 关闭 Visual Studio 的所有实例。

  2. 进入“开始”菜单 > “程序” > “Visual Studio 200X” > “Visual Studio 工具”,选择“Visual Studio 200X 命令提示符”

  3. 运行命令“devenv.exe /ResetUserData”(少为人知)。使用此命令将丢失所有 Visual Studio 环境设置和自定义。因此,“/ResetUserData”开关未得到官方支持,Microsoft 也未对其进行广告宣传(在命令提示符中键入“devenv.exe /?”以获取 devenv.exe 帮助时也没有描述该开关)。重要的是等待出现的 devenv.exe 进程在任务管理器中消失,甚至更好的方法是使用 Process Explorer。

  4. 当任务管理器或 Process Explorer 中的进程消失时,请运行“devenv.exe /ResetSettings”,它将恢复 IDE 的默认设置并最终启动单个 Visual Studio 实例。

  5. 现在,在 Visual Studio 中选择“工具”菜单下方的“导入和导出设置...”以启动“导入和导出设置向导”。

  6. 选择“重置所有设置”单选按钮,然后点击“下一步” > 选择“否,只重置设置,覆盖我的当前设置”并点击“下一步” > 选择您个人偏好的“设置集合”,这里我会选择“Visual C# 开发设置”(注意:你在这里的选择会影响键盘快捷键等设置,但是你可以随时重复此过程直到满意),最后点击“完成”。

  • 当您收到消息“您的设置已成功重置为XXXXXX开发设置。”时,请单击关闭,然后花费一些时间添加任何个人定制到Visual Studio中,例如打开您总是想要打开的窗口、自定义工具栏和添加任何工具栏按钮等。

  • 当您完成个人定制并完全满意您的设置后,请再次转到工具 > “导入和导出设置...”

  • 选择“导出所选环境设置”单选按钮,然后单击下一步 > 选中“所有设置”复选框,然后单击下一步 > 选择一个文件名和目录,然后单击完成以将当前设置备份存储在.vssettings文件中。

  • 将来,如果出现问题,请返回到工具 > “导入和导出设置...”,这次选择“导入所选环境设置”单选按钮,然后单击下一步 > 选择“否,只导入新设置,覆盖我的当前设置”并单击下一步 > 从列表中选择.vssettings文件的名称(通常位于“我的设置”文件夹下)或浏览到保存文件的位置,然后单击下一步 > 选中“所有设置”复选框,最后单击完成。

  • 重要的是,关闭Visual Studio的单个实例。任何未来打开的实例都应保留您最新的定制。


  • 我在设置设置时经常遇到崩溃。在这些崩溃之后,我的“vssettings”文件可能会损坏。 - CodingBarfield
    2
    优秀的解决方案,但你忘记了一个重要且不清晰的步骤:在第10步时,恢复设置时,必须关闭所有打开的解决方案并只保留一个 VS 实例 。如果你有一个解决方案是打开的,恢复设置就不会对你的窗口布局产生影响。 - Abel
    3
    这对我有用。只需注意您可能还需要重新安装任何扩展程序。 - Preet Kukreti
    1
    这就是为什么我喜欢Windows 8的原因。由于没有开始按钮,程序也没有单独的位置来安装它们的辅助可执行文件。所以现在我需要搜索Visual Studio命令提示符。 - argyle
    在 Visual Studio 2017 中,这仍然是有用的:对于我来说,它只是恢复了TypeScript文件的代码颜色,而其他方法都失败了。 需要注意的一点是不要从管理员 VS 命令提示符中执行 devenv 命令,只需使用普通命令提示符即可。 它们是按用户设置的,因此如果您的常规用户不是管理员,则会为错误的用户重置它们。 - Rich N
    显示剩余3条评论

    7
    Visual Studio经常会出现设置文件损坏的问题(从Visual C++时代开始,我一直受此困扰,而在VS2013中这个问题仍然存在),通常情况下这似乎是完全随机的,但在崩溃后很可能会发生。
    如果Visual Studio没有正常关闭,它也将丢失对设置所做的任何更改 - 由于某种原因,当你单击“确定”对话框时,VS似乎等到退出才写回你的更改,所以在更改选项后,我总是退出并重新启动以确保更改已刷新到磁盘。同样,您不应该在运行2个或更多实例的情况下更改选项,因为最后一个退出的实例将覆盖设置。
    特别是有一种很容易重现的情况:如果同时启动两个或多个副本(我的意思是如果您启动了两个或多个副本,使它们都在同时初始化),它们似乎会争夺设置文件,并导致其损坏或重置为默认值。
    我找到的最好的两个解决方法是:
    1.永远不要同时启动多个实例。如果需要同时运行几个实例,则在第一个加载其解决方案之前等待,然后再开始启动下一个。
    2.始终使用“工具>导入和导出设置”将您的设置保存到备份文件中,以便从此损坏中恢复仅需几秒钟。
    另一个较小但仍然相当烦人的习惯是,如果在退出时最小化了VS(例如通过关闭),它会损坏其窗口位置信息,下次运行时它将最大化。

    6

    当我的文档文件夹存储在映射驱动器上时,我遇到了类似的问题。如果在映射驱动器之前打开VS,它会表现得好像这是第一次打开。我通过将环境设置存储在本地磁盘上解决了这个问题。


    1
    我总是有问题,使用映射驱动器上的vs设置。我把我的设置为本地保存,但即使如此,随机地,VS也会将保存路径更改回映射的驱动器。 - CodingWithSpike

    4

    我也遇到了类似的问题,看起来是在Windows更新后触发的。无论我做什么,都无法得到一些虚假的窗口布局。上面的建议也没有起作用。但幸运的是,在这个网站Why doesn't VS 2008 IDE remember my preferences?中的建议是删除:

    %APPDATA%\Application Data\Microsoft\VisualStudio\9.0\windows.prf
    

    worked.

    TP


    3
    尝试使用%APPDATA%\Microsoft\VisualStudio\9.0\windows.prf ... 不要删除“Application Data\”,因为%APPDATA%是指向它的指针。 - CAD bloke
    在使用Visual Studio 2015 Community时出现“找不到文件”的错误。 有没有关于更新版本的Visual Studio的建议? - ZiGiUs

    3

    实际上,我找到了罪魁祸首:之前的VS崩溃。

    如果我的任何一个Visual Studio实例由于任何原因而崩溃,下次启动VS时,我会得到一组奇怪的设置。这种行为取决于各种因素,比如当时是否有其他VS实例正在运行。


    1
    没有什么特别的 - 尝试阻止VS崩溃。 - cbp

    3

    我尝试了Peter McG的解决方案,但仍然没有帮助。

    最终让我成功的方法是删除我的VS Solution User Options (.sou)文件。该文件位于与我的解决方案相同的目录中。

    唯一不好的事情是你必须重新设置所有的选项。这包括我的异常更改。如果你有很多自定义设置,那么重新设置可能会很麻烦。

    那个文件中肯定有些东西搞砸了一切,但是删除整个文件非常快捷方便。


    1
    我的问题类似,但结果是应用程序崩溃。问题出在这个值上:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\MainWindow。它被设置为“0 1000 -280 -100 3”,可能是因为有多个屏幕并且经常移动UI。删除此值后,应用程序可以成功重新启动。它会在启动时重新创建。

    1

    打开哪个解决方案不应该有影响,因为这些设置不是特定于解决方案的。但我想知道你是否安装了Visual Studio 2005和2008?如果是这样,在2005中创建的解决方案将打开VS 2005,而在2008中创建的解决方案将打开VS 2008。即使您没有安装它,也可能拥有VS 2005。例如,InfoPath 2007安装了VS 2005 shell。

    首先,我会将窗口放置在您想要的位置,然后执行“工具”->“导出设置”,并仅包括窗口布局。这样,您至少有一些可以恢复的东西。

    然后,我会检查“工具”->“选项”->“导入/导出设置”,并注意“自动保存我的设置到此文件”的路径设置在哪里。密切关注该文件。您是否有任何同步软件可能会无意中覆盖它?它指向不存在的位置吗?


    0

    我也遇到过类似的问题。在我的情况下,文本编辑器的颜色(例如C#编辑器)会出现问题。我尝试过的唯一解决方案是更改颜色主题为其他主题,然后再切换回我想要的主题。


    0

    我最近在VS 2012中遇到了这个问题,重置窗口布局没有任何作用。

    我推断出:

    %APPDATA%\Application Data\Microsoft\VisualStudio\9.0\windows.prf

    %appdata%\Microsoft\VisualStudio\11.0\Windows.index

    ...删除它后,又回到了正常状态!

    • 确保您首先关闭所有VS实例!

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接