我创建了一个应用程序来运行,但需要从该应用程序中为Visual Studio构建一个外部工具。在15.4.0之前,该应用程序一直正常工作,但是他们修改了注册表。根据微软的更改,外部工具保存在此子键下:
当您观察该键时,您会清楚地看到工具、Guid、错误查找和其他几个包含在Visual Studio中的文件夹(子键)。然而,问题在于,如果您手动在Visual Studio中创建工具,则将关键信息直接转储到根外部工具键中。
因此,如果我采取以下任何一种方法:
工具未出现在列表或工具栏中。 Visual Studio 2017 15.5.* 与代码不同的地方是什么,导致它不能正常工作?更糟糕的是,即使在Visual Studio 2017手动创建键时,有时也无法看到它。
SOFTWARE\Microsoft\VisualStudio\14.0_Config\External Tools
。当您观察该键时,您会清楚地看到工具、Guid、错误查找和其他几个包含在Visual Studio中的文件夹(子键)。然而,问题在于,如果您手动在Visual Studio中创建工具,则将关键信息直接转储到根外部工具键中。
因此,如果我采取以下任何一种方法:
var user = RegistryKey.OpenBaseKey(RegistryHive.CurrenUser, RegistryView.Default);
var tools = user.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio\14.0_Config\External Tools", true);
var path = Environment.GetCommandLineArgs()[0];
tools.SetValue("ToolArg", "$(ItemPath)");
tools.SetValue("ToolCmd", path);
tools.SetValue("ToolDir", String.Empty);
tools.SetValue("ToolOpt", 0x12);
tools.SetValue("ToolsSourceKey", String.Empty);
tools.SetValue("ToolTitle", "My Tool");
var user = RegistryKey.OpenBaseKey(RegistryHive.CurrenUser, RegistryView.Default);
var tools = user.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio\14.0_Config\External Tools", true);
var sub = tools.CreateSubKey("MyTool");
var path = Environment.GetCommandLineArgs()[0];
sub.SetValue("ToolArg", "$(ItemPath)");
sub.SetValue("ToolCmd", path);
sub.SetValue("ToolDir", String.Empty);
sub.SetValue("ToolOpt", 0x12);
sub.SetValue("ToolsSourceKey", String.Empty);
sub.SetValue("ToolTitle", "My Tool");
工具未出现在列表或工具栏中。 Visual Studio 2017 15.5.* 与代码不同的地方是什么,导致它不能正常工作?更糟糕的是,即使在Visual Studio 2017手动创建键时,有时也无法看到它。