如何更改"Visual Studio 2017"文件夹位置?

Duo*_*ons 40 visual-studio-2017

如何更改在%USERPROFILE%/ Documents下创建的"Visual Studio 2017"目录的位置?

在2015年及更早版本中,您可以通过编辑注册表将所有文件夹移出"我的文档",但这些值似乎已移至VS2017:

旧方法:更改"Visual Studio 2010"文件夹位置

更新

我更改了默认的项目和模板位置,但这些目录仍存在于"我的文档"中:

我的文件中的目录

Ern*_*.14 48

(主演这个问题是因为我需要在Visual Studio的下一个版本中找到这个答案,我敢打赌......每次我设置一台新机器时我都会忘记这一点.我上次从一堆不同的机器拼凑了这个问题.网站,但不幸的是我的google-fu再也找不到它们了,所以我对那些未命名的开发者表示最诚挚的谢意.)


最后,我可以回答一个问题!我也花了无数个小时试图解决这个问题.您的问题的评论者是正确的 - 设置仍由相同的注册表项控制,只是在切换到其他安装程序后,这些设置的位置已被移动.瞧,看哪:

  • 以前,Visual Studio 在Visual Studio特定的密钥下将许多注册表项安装到系统HKEY_LOCAL_MACHINEHKEY_CURRENT_USER配置单元中:
    • HKLM\Software\Microsoft\VisualStudio\Version:[...]
    • HKCU\Software\Microsoft\VisualStudio\Version:[...]
    • HKLM\Software\Microsoft\VisualStudio\Version_Config:[...]
  • 为了减少对注册表的影响,Visual Studio现在使用RegLoadAppKey函数将注册表项存储在私有二进制文件下%VsAppDataFolder%\privateregistry.bin.[...]

所以从本质上讲,您需要做的是找到该文件,将其加载到注册表编辑器(如regedit.exe)中,根据自己的喜好更改值,然后以相同的格式保存文件.在我的机器上,该文件位于:

C:\Users\Ernest\AppData\Local\Microsoft\VisualStudio\15.0_dfee2c30

不审查我的用户名,因为它无论如何都很明显.以下是如何使用regedit.exe进行编辑:

首先,选择某处加载注册表配置单元(我使用过HKEY_USERS).只要你在加载蜂巢时没有覆盖某些东西(它会警告你),这并不重要.选中该键后,转到File> Load Hive...,然后打开上述privateregistry.bin文件.输入密钥名称以加载它(例如"VS2017_config"),您将看到过去版本中使用的熟悉密钥来配置路径.改变那些.完成后,选择您加载的配置单元(例如"VS2017_config"),然后转到File> Unload Hive....这应该正确设置文件夹路径.


请注意,第一次使用Visual Studio Blend时会再次弹出这些文件夹,因此如果您打算使用它,请记住更改这些文件夹.

编辑:Blend的相应注册表配置单元对我来说:

C:\Users\Ernest\AppData\Local\Microsoft\Blend\15.0_dfee2c30


编辑2018:@ofthelit已经发布了一个包含相关信息的官方页面.

  • 非常好 - 这非常有效.非常感谢! (2认同)
  • Visual Studio修复后也重置了这些文件夹,但加载/编辑/卸载配置单元只需要5分钟的修复 (2认同)
  • _在Visual Studio 2017中,注册表设置存储在一个私有位置,该位置允许同一台计算机上同一版本的Visual Studio的多个并行实例.文档位置:https://docs.microsoft.com/en -us/VisualStudio中/安装/工具,换管理,VisualStudio中,实例 (2认同)

Dav*_*vid 24

或者(在Visual Studio 2017中)只需转到工具>>选项>>项目和解决方案>>位置

在此输入图像描述

  • 嗯,VisualStudioLocation的注册表是优越的,因为它一次性改变,包括Code Snippets位置.(另外,Visual Studio总是为Visual Basic创建一个"My Snippets"[即使你删除它],其位置只能使用regedit方法更改.) (2认同)
  • 是的,我甚至发布我的答案的原因是,只是更改这些设置仍然会留下讨厌的文件夹,不会被删除.如果你不关心那些,我同意这是一个很好的答案. (2认同)