Visual Studio Achievements Beta — или как стать программистом 80 уровня

Появилось шуточное расширение Visual Studio Achievements для Visual Studio, позволяющее прокачивать свои программистские навыки и позволяющее делиться «достижениями». Как только получен соответствующий значок им можно похвастаться в FaceBook и Twitter.

Помимо применения расширения «just for fun» и наличия довольно бессмысленных достижений(«Написать иерархию классов с наследованием в 10 уровней») или даже грустных («Программировать ночью в пятницу или субботу»), расширение может быть вполне полезным при начальном освоении Visual Studio, например, позволяет узнать о функции «Organize Usings». Но пока все-таки список не очень большой, надеюсь, авторы не остановятся на достигнутом.

Макрос присоединения к процессу Visual Studio

При отладке VST-плагина довольно утомительно каждый раз выбирать хост-процесс, к которому нужно присоединиться из полного списка процессов. Здесь описан способ создания макроса, позволяющего упростить эту рутинную операцию для присоединения к IIS для отладки ASP.NET. Для наших целей (присоединение к процессу reaper.exe) лучше взять и слегка поправить шаблон макроса из Samples-VsDebugger-AttachToCalc, который пытается присоединиться к калькулятору Windows.

  1. Создать новый модуль макроса в >Macro Explorer (Tools->Macro->Macro Explorer) , например, с названием MyDebuggerTools.
  2. Вписываем примерно такой код модуля:
  3. Imports System
    Imports EnvDTE
    Imports EnvDTE80
    Imports EnvDTE90
    Imports System.Diagnostics
    Imports System.Security.Principal
    
    Public Module MyDebuggerTools
    
        ' This subroutine attaches to reaper.exe if it is running.
        Sub AttachToReaper()
            Dim attached As Boolean = False
            Dim proc As EnvDTE.Process
    
            Dim reaperProcName = "reaper.exe"
    
            For Each proc In DTE.Debugger.LocalProcesses
                If (Right(proc.Name, Len(reaperProcName)) = reaperProcName) Then
                    proc.Attach()
                    attached = True
                    Exit For
                End If
            Next
    
            If attached = False Then
                MsgBox(reaperProcName + "is not running")
            End If
    
        End Sub
    
    End Module
    
  4. Привязываем макрос к сочетанию клавиш. Tools-Options->Environment-Keyboard, вводим в фильтре начало имени процедуры, указываем сочетание клавиш, например, Сtrl-Alt-K и нажимаем кнопку Assign.

Intellisense для CUDA в Visual Studio

Для того, чтобы при редактировании исходного кода cu-файлов в Visual Studio 2008 заработало автодополнение, необходимо отредактировать ключ реестра:
HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio9.0LanguagesLanguage ServicesNCB Default C/C++ Extensions. Можно просто дописать нужные расширения .cu и .cuh. Либо же просто применить изменения реестра из файла %CUDA_PATH%extrasvisual_studio_integrationgpucomputing_intellisense.reg

После перезапуска Visual Studio Intellisense будет работать.

The invocation of the constructor on type ProjectName.MainWindow1 that matches the specified binding constraints threw an exception

Within Visual Studio 2010 if you get the error «The invocation of the constructor on type <> that matches the specified binding constraints threw an exception» . You may try the following steps to get more information. First you should know, that the error means there was a runtime error parsing the xaml code. To get the real exception you should activatte the catch of all thrown in exceptions in Visual Studio. Open Debug > Exceptions and activate the checkbox in the «thrown» column for «Common Language Runtime Exceptions». Done so, Visual Studio will halt on all exceptions.

(In my case it was because there were no required resources)