我可以在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}"
- 如何列出所有已安装的NuGet包?
- 为什么System.Web.Mvc没有在添加引用中列出?
- 由于不同的病毒扫描程序,Microsoft Visual Studio的速度变慢
- Visual Studio 2010 RTM不与ClickOnce一起发布
- 在Microsoft Visual Studiodebugging器中更改DateTime
- Visual Studio 2012上的mySQL DataSource
- 如果(false == true)在抛出exception的时候执行block
- 如何禁用Visual Studio中的ReSharper并再次启用它?
- 当Visual Studio C ++debugging器中出现一个variables时,这是什么意思?