{"id":510,"date":"2014-07-18T16:00:58","date_gmt":"2014-07-18T05:00:58","guid":{"rendered":"http:\/\/blog.quppa.net\/?p=510"},"modified":"2014-07-18T16:00:58","modified_gmt":"2014-07-18T05:00:58","slug":"fix-visual-studio-2013-start-menu-shortcuts","status":"publish","type":"post","link":"https:\/\/www.quppa.net\/blog\/2014\/07\/18\/fix-visual-studio-2013-start-menu-shortcuts\/","title":{"rendered":"Fix Visual Studio 2013 Start Menu shortcuts"},"content":{"rendered":"<p><a href=\"https:\/\/connect.microsoft.com\/VisualStudio\/feedback\/details\/935614\/vs2013-creates-shortcut-to-visual-studio-tools-directory-preventing-start-menu-screen-search-from-retrieving-shortcuts-contained-within\" title=\"Visual Studio Connect: VS2013 creates shortcut to 'Visual Studio Tools' directory, preventing Start Menu\/Screen search from retrieving shortcuts contained within\">Click here to see this bug on Connect.<\/a><\/p>\n<p>Visual Studio 2013 configures Start Menu shortcuts differently to earlier versions. Specifically, it adds a shortcut to &#8216;Visual Studio Tools&#8217; (<code>%PROGRAMFILES(X86)%\\Microsoft Visual Studio 12.0\\Common7\\Tools\\Shortcuts<\/code>), where Visual Studio 2012 added a directory called &#8216;Visual Studio Tools&#8217; and added copies of the shortcuts. This is all a bit confusing, but the end result is that searching in the Start Menu\/Screen won&#8217;t bring up results for useful things like the <a title=\"MSDN: Visual Studio Command Prompt\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms229859.aspx\">Developer Command Prompt<\/a> or <a title=\"MSDN: Spy++\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/aa264396.aspx\">Spy++<\/a>.<\/p>\n<p>This annoyed me sufficiently that I wrote a PowerShell script (run it as administrator) to restore the shortcut directory:<\/p>\n<pre class=\"lang:ps decode:true \">\n$shortcutpath = \"$env:ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Visual Studio 2013\\Visual Studio Tools.lnk\"\n$newshortcutdir = \"$env:ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Visual Studio 2013\\Visual Studio Tools\"\nIf (Test-Path $shortcutpath) {\n  $shell = New-Object -COM WScript.Shell\n  $toolsdir = $shell.CreateShortcut($shortcutpath).TargetPath\n  # create directory if necessary\n  If (-Not(Test-Path $newshortcutdir)) {\n    mkdir $newshortcutdir\n  }\n  # copy shortcut files\n  copy \"$toolsdir\\*.lnk\" $newshortcutdir\n  # hide old shortcut\n  $shortcut = Get-Item $shortcutpath -Force\n  $shortcut.Attributes = $shortcut.Attributes -bor [System.IO.FileAttributes]::Hidden\n} else {\n  \"Shortcut not found.\"\n}\n<\/pre>\n<p>The Visual Studio Shortcuts directory doesn&#8217;t contain shortcuts to Spy++ (and a number of other programs). Here&#8217;s another script to restore shortcuts to Spy++:<\/p>\n<pre class=\"lang:ps decode:true \">\n$shortcutdir = \"$env:ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Visual Studio 2013\\Visual Studio Tools\"\n$toolsdir = \"${env:ProgramFiles(x86)}\\Microsoft Visual Studio 12.0\\Common7\\Tools\"\n$shell = New-Object -COM WScript.Shell\n$spyshortcut = $shell.CreateShortcut(\"$shortcutdir\\Spy++.lnk\")\n$spyshortcut.TargetPath = \"$toolsdirspyxx.exe\"\n$spyshortcut.Save();\n$spyshortcut = $shell.CreateShortcut(\"$shortcutdir\\Spy++ (64-bit).lnk\")\n$spyshortcut.TargetPath = \"$toolsdirspyxx_amd64.exe\"\n$spyshortcut.Save();\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Click here to see this bug on Connect. Visual Studio 2013 configures Start Menu shortcuts differently to earlier versions. Specifically, it adds a shortcut to &#8216;Visual Studio Tools&#8217; (%PROGRAMFILES(X86)%\\Microsoft Visual Studio 12.0\\Common7\\Tools\\Shortcuts), where Visual Studio 2012 added a directory called &#8216;Visual Studio Tools&#8217; and added copies of the shortcuts. This is all a bit confusing, &hellip; <a href=\"https:\/\/www.quppa.net\/blog\/2014\/07\/18\/fix-visual-studio-2013-start-menu-shortcuts\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Fix Visual Studio 2013 Start Menu shortcuts&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6],"tags":[101,129,163],"class_list":["post-510","post","type-post","status-publish","format-standard","hentry","category-miscellaneous","category-programming","tag-powershell","tag-shortcuts","tag-visual-studio"],"_links":{"self":[{"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/posts\/510","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/comments?post=510"}],"version-history":[{"count":0,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/posts\/510\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/media?parent=510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/categories?post=510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/tags?post=510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}