Как отладить проект VSPackage - PullRequest
2 голосов
/ 31 января 2011

Я установил VS2010 SDK и создал проект VSPackage с пустым методом «Initialize».

[PackageRegistration(UseManagedResourcesOnly = true)]
[InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)]
[Guid(GuidList.guidGrowl_Extras_VSAddInPkgString)]
public sealed class Growl_Extras_VSAddInPackage : Package
{
   public Growl_Extras_VSAddInPackage()
   {
      Trace.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering constructor for: {0}", this.ToString()));
   }

protected override void Initialize()
   {
      Trace.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString()));
      base.Initialize();
   }
} 

Если я установил точку останова в методе «Initialize» и запустил проект в режиме отладки, он запускает экспериментальный экземпляр VS, но точка останова не срабатывает.Там написано, что символы отладки не загружены.

Что я делаю не так?

Спасибо за помощь, Enyra

1 Ответ

4 голосов
/ 01 февраля 2011

Это совершенно нормальное поведение. Visual Studio пытается , а не загрузить ваш пакет в память, пока это не будет необходимо. (Например, пользователь открыл тип проекта или выполнил команду, для которой ваш пакет обеспечивает обработку.)

Эта задержка загрузки выполняется из соображений производительности. Если VS загрузит все расширения и пакеты при запуске, вы будете ждать довольно долго, чем нужно, при каждом запуске IDE.

Эта страница в MSDN объясняет более подробно.

Исходя из опубликованного вами фрагмента кода, ваш пакет не регистрирует (с помощью атрибутов Provide *), что он имеет какие-либо функции, поэтому у Visual Studio нет реальной причины для его загрузки.

...