Точки останова Silverlight 3 не достигаются при запуске внешней программы - PullRequest
2 голосов
/ 30 июня 2010

Я использую Visual Studio 2008, Silverlight 3 и IE 6 (не спрашивайте).

Я пытаюсь запустить и отладить приложение с помощью F5, но отладчик говорит, что мои контрольные точки не будут достигнуты, потому что символы не загружены.

Моим браузером по умолчанию на самом деле является Firefox, но я настраиваю Начальное действие проекта, чтобы он специально запускал IE и указывал на правильный URL, чтобы я мог отлаживать в IE, но использовать Firefox для обычных веб-приложений.

Если я запускаю процесс таким образом, не подключая отладчик, а затем присоединяю после его запуска, все в порядке. Если я сделаю IE браузером по умолчанию, установите для параметра «Действие запуска» значение «Текущая страница», тогда все в порядке.

Если в качестве браузера по умолчанию используется IE, но для параметра «Действие запуска» задано значение «Запустить внешнюю программу» и указать его в IE, проблема снова возникает. Таким образом, похоже, что проблема в том, что запуск внешней программы с подключенным отладчиком не работает для меня, независимо от того, какой браузер используется по умолчанию.

Я пробовал это с реальным приложением, а также с совершенно новым тестовым проектом, и оба ведут себя одинаково.

Любые советы о том, как заставить это работать? Или я обречен на то, чтобы сделать IE6 браузером по умолчанию, установить текущую страницу как стартовое действие и скопировать / вставить все ссылки в Firefox вместо того, чтобы щелкать по ним? (

1 Ответ

0 голосов
/ 16 апреля 2011

Я сталкивался с этим раньше при устранении нечетных проблем в межбраузерной поддержке. Что вы можете сделать, так это установить для макроса Visual Studio значение

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90

Public Module AutoAttachMacro

   Sub StartDebugging()            
      Dim Projs As Array
      Dim Proj As Project
      Projs = DTE.ActiveSolutionProjects()
      If (Projs.Length > 0) Then
         Proj = Projs.GetValue(0)
         Dim Prop As EnvDTE.Property
         Prop = DTE.Solution.Properties.Item("StartupProject")
         Dim PrevStartup As Object
         PrevStartup = Prop.Value
         Prop.Value = Proj.Name
         DTE.ExecuteCommand("Debug.StartWithoutDebugging")
         Prop.Value = PrevStartup
      End If

      ' Lookup ProcessId '

      For Each process AS EnvDTE.Process In DTE.Debugger.LocalProcesses
         If process.ProcessID = processId Then
            process.Attach()
            DTE.Debugger.CurrentProcess = process
         End If
      Next process       

End Module

Спасибо, между прочим, на следующий вопрос / ответы за помощь: Как запустить отдельный проект без отладки в Visual Studio?

...