我可以在Visual Studio 2015 final中隐藏笑脸吗?

在Visual Studio 2015 RC中,在主窗口的右上方有反馈笑脸。

不幸的是,它仍然在Visual Studio 2015的最终版本中:

在这里输入图像说明

我search了所有的选项和设置,发现无法隐藏这个笑脸。

我的问题:

任何选项或其他(registry等)破解笑脸?

2015-12-01更新:

昨天,Visual Studio Update 1发布了 。

虽然我仍然找不到隐藏笑脸的select,但他们至less提供了一个不那么让人分心的图标:

在这里输入图像说明

编辑:

Visual Studio 2015 Update 1将反馈图标更改为低调的黑色和白色,从而不再有笑脸! 这在发行说明中没有提及。

在这里输入图像说明

原始答案:

就像OP中的答案一样,这个图标是在这个registry项中指定的:

HKEY_CURRENT_USER \软件\微软\ VisualStudio的\ 14.0_Config \ MainWindowFrameControls {F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07}

如果删除键,Visual Studio将重新创build它,但是如果您使registry项的“包”值无效并重新启动Visual Studio,则笑脸图标消失:

在这里输入图像说明

但是,当您安装Visual Studio更新(例如SSDT,Resharper)时,安装程​​序会恢复软件包值,并且笑脸又回来了。 所以我创build了一个这样的registry文件,在笑脸再次出现时运行:

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MainWindowFrameControls\{F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07}] @="Feedback Button" "Package"="{00000000-AA51-43B1-97EE-509A33B681F3}" "DisplayName"="#1001" "ViewFactory"="{060EAB95-139E-407D-BEDC-CC2B7A9B39D4}" "ViewId"=dword:00000064 "Alignment"="TitleBarRight" "Sort"=dword:00000064 "FullScreenAlignment"="MenuBarRight" "FullScreenSort"=dword:00000064 

这似乎不会影响启动时间或稳定性,但是没有保证,registry更改是不好的,等等。

感谢Jehof对Visual Studio 2013 的暗示 ,我能够解决这个问题:

删除以下registry项实际上有所帮助。

HKEY_CURRENT_USER \软件\微软\ VisualStudio的\ 14.0_Config \ MainWindowFrameControls \ {F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07}

(请注意链接的博客文章中的14.0而不是12.0)

在这里输入图像说明

重新启动Visual Studio后,反馈button现在不见了。

一天后更新

突然间,反馈图标再次出现在这里。 而且registry键也在这里。

这究竟是怎么发生的呢?

似乎从坟墓复活的笑脸。 我现在很害怕

在这个线程的build议之后,我也修改了registry键,它起初工作,但一段时间后VS2015不断重新创build关键的原始值。

为了解决这个问题,我在任务栏中添加了一个VS2015快捷键,然后按住Shift +右键点击“属性”。 将指向devenv.exe的快捷方式的目标pathreplace为本地的c:\ tools \ vs.bat文件。

另外,我在快捷方式属性中将“运行”更改为“最小化”。 这个vsbat的外观如下:

 @echo off reg ADD HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MainWindowFrameControls\{F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07} /v Package /t REG_SZ /d {00000000-AA51-43B1-97EE-509A33B681F3} /f 2> nul start /B devenv.exe 

这确保每次我通过任务栏shourtcut启动VS2015时,密钥被覆盖。 我发现这是可靠的为我工作。

如果你没有这个开始VS(例如,在一个VS重启),你可能需要运行上述两次。

我已经删除了alignment键的值(只是把它留空)。 该图标已经走到现在,但我还没有安装任何更新。 将继续发帖。

更新恢复VS2015不仅恢复了这个button,而且改变了它的configuration方式:现在我的方法不起作用。 而且,删除registry键不再有帮助。 通过这个有用的工具写给MS。

Visual Commander扩展允许创build可以挂入事件的扩展。 一个提供的例子是隐藏反馈图标 。

 // References: System.Xaml public class E : VisualCommanderExt.IExtension { public void SetSite(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { timer = new System.Windows.Threading.DispatcherTimer(); timer.Interval = System.TimeSpan.FromMilliseconds(1000); timer.Tick += OnTimer; timer.Start(); } public void Close() { timer.Stop(); } private void OnTimer(System.Object o, System.EventArgs a) { try { if (HideSignIn() && HideFeedback()) ; } catch (System.Exception e) { } } private bool HideSignIn() { System.Windows.FrameworkElement e = FindElement(System.Windows.Application.Current.MainWindow, "PART_MenuBarFrameControlContainer"); if (e != null) { e.Visibility = System.Windows.Visibility.Collapsed; return true; } return false; } private bool HideFeedback() { System.Windows.FrameworkElement e = FindElement(System.Windows.Application.Current.MainWindow, "PART_TitleBarFrameControlContainer"); if (e != null) { System.Windows.DependencyObject o1 = System.Windows.Media.VisualTreeHelper.GetChild(e, 0); System.Windows.DependencyObject o2 = System.Windows.Media.VisualTreeHelper.GetChild(o1, 0); System.Windows.DependencyObject o3 = System.Windows.Media.VisualTreeHelper.GetChild(o2, 0); if (System.Windows.Media.VisualTreeHelper.GetChildrenCount(o3) == 3) { System.Windows.DependencyObject o4 = System.Windows.Media.VisualTreeHelper.GetChild(o3, 1); (o4 as System.Windows.FrameworkElement).Visibility = System.Windows.Visibility.Collapsed; return true; } } return false; } private System.Windows.FrameworkElement FindElement(System.Windows.Media.Visual v, string name) { if (v == null) return null; for (int i = 0; i < System.Windows.Media.VisualTreeHelper.GetChildrenCount(v); ++i) { System.Windows.Media.Visual child = System.Windows.Media.VisualTreeHelper.GetChild(v, i) as System.Windows.Media.Visual; if (child != null) { System.Windows.FrameworkElement e = child as System.Windows.FrameworkElement; if (e != null && e.Name == name) return e; } System.Windows.FrameworkElement result = FindElement(child, name); if (result != null) return result; } return null; } private System.Windows.Threading.DispatcherTimer timer; } 

虽然,比较这个例子与隐藏发布button的例子,它似乎OnTimer函数应该停止图标一旦隐藏的计时器。

 private void OnTimer(System.Object o, System.EventArgs a) { try { if (HideSignIn() && HideFeedback()) timer.Stop(); } catch (System.Exception e) { } } 

这行PowerShell删除图标,直到安装更新:

  Set-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\14.0_Config\MainWindowFrameControls\{F66FBC48-9AE4-41DC-B1AF-0D64F0F54A07}" Package "{00000000-AA51-43B1-97EE-509A33B681F3}"