如何调试VSPackage项目

时间:2011-01-31 09:42:55

标签: visual-studio-2010 debug-symbols vspackage

我安装了VS2010 SDK并使用空的“Initialize”方法创建了一个VSPackage项目。

[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 个答案:

答案 0 :(得分:4)

这是完全正常的行为。 Visual Studio尝试将包加载到内存中,直到绝对必要。 (例如,用户打开了项目类型或执行了包提供处理的命令。)

此延迟加载是出于性能原因而完成的。如果VS在启动时加载了所有扩展和包,那么在每次启动IDE时,您将等待相当长的时间。

This page on MSDN进一步详细解释。

根据您发布的代码段,您的包不会注册(通过Provide *属性)它具有任何功能,因此Visual Studio从未真正有理由加载它。