以编程方式重置VisualStudio快捷方式

Mat*_*ias 13 c# visual-studio envdte

有关重置VisualStudio键盘方案和导入VisualStudio设置有两个相关问题.但是,这似乎并不是很好.

我有两个包含快捷方式的设置文件:

<!-- IntelliJ.vssettings -->   
<ShortcutsScheme>Visual C# 2005</ShortcutsScheme>
<UserShortcuts>
  <Shortcut Command="ReSharper.ReSharper_GotoNextHighlight" Scope="Global">F12</Shortcut>
</UserShortcuts>

<!-- ReSharper.vssettings -->   
<ShortcutsScheme>Visual C# 2005</ShortcutsScheme>
<UserShortcuts>
  <!-- Implicitly has F12 assigned to Edit.GoToDefinition -->
</UserShortcuts>
Run Code Online (Sandbox Code Playgroud)

如您所见,ReSharper.vssettings实际上没有F12分配快捷方式,因为它是VisualStudio的默认设置.导入该文件不会重新应用ShortcutsScheme,这Visual Studio C# 2005在两种情况下都是如此.这反过来导致F12继续执行GotoNextHighlight命令的事实.仅使用导入对话框时出现同样的问题.

使用DTE如下重置键盘方案也不起作用:

var property = dte.Properties["Environment", "Keyboard"];
property.Item("SchemeName").Value = "(Default)";
Run Code Online (Sandbox Code Playgroud)

导出默认设置不会出于同样的原因.如此处所示,不会导出任何快捷方式.

因此问题:如何使用DTE以编程方式重置VisualStudio键盘方案?

我真正需要的是触发ResetOptions |中按钮的命令 环境| 键盘对话框.

Chr*_*way -1

您可以直接调用 devenv.exe 并传递 /ResetSettings 开关。以下是 Visual Studio 命令行选项的链接: https://msdn.microsoft.com/en-us/library/xee0c8y7.aspx

您可以使用 Systems.Diagnostics.Process 类执行 devenv.exe 来重置设置:

Devenv.exe /ResetSettings

您可以选择传递包含要恢复的设置的设置文件:

Devenv.exe /ResetSettings "C:\My Files\MySettings.vssettings"

在 Visual Studio 中,您可以通过转到“工具”>“导入和导出设置...”并选择“导出选定的环境设置”来导出选定的设置。然后,仅选择“所有设置”>“选项”>“环境”子树下的“键盘”复选框。