2011-01-31 76 views
2

我安裝了VS2010 SDK並創建了一個VSPackage項目,其中有一個空的「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(); 
    } 
} 

如果我設置的「初始化」方法中的一個破發點,並在調試模式下的項目,它開始實驗VS實例,但斷點不打。它說沒有加載調試符號。

我在做什麼錯?

感謝您的幫助, Enyra

回答

4

這是完全正常的行爲。 Visual Studio嘗試而不是將你的軟件包加載到內存中,直到它絕對需要。 (例如,用戶打開了一個項目類型或執行了一個命令,以供您的包提供處理。)

此延遲加載是出於性能原因完成的。如果VS在啓動時加載了所有擴展和軟件包,則在每次啓動IDE時都會等待比所需時間更長的時間。

This page on MSDN進一步詳細解釋。

根據您發佈的代碼片段,您的包不會註冊(通過提供*屬性)它具有任何功能,因此Visual Studio永遠不會有加載它的真正原因。

+0

謝謝,就是這樣。 – Enyra 2011-02-01 12:47:09