我安装了Initialize 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
发布于 2011-02-01 14:11:23
这是完全正常的行为。Visual Studio尝试在万不得已的情况下,才会将包加载到内存中,而不是。(例如,用户打开了一个项目类型或执行了您的包提供处理的命令。)
这种延迟加载是出于性能原因而进行的。如果VS在启动时加载了所有的扩展和包,那么在每次启动IDE时等待的时间都会比所需的时间长很多。
This page on MSDN对此进行了更详细的解释。
根据您发布的代码片段,您的包不会注册(通过Provide* attributes)它具有任何功能,因此Visual Studio从来没有真正的理由加载它。
https://stackoverflow.com/questions/4849389
复制相似问题