2

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インスタンスが開始されますが、ブレークポイントはヒットしません。デバッグシンボルがロードされていないことを示しています。

私は何が間違っているのですか?

助けてくれてありがとう、エニラ

4

1 に答える 1

4

これは完全に正常な動作です。Visual Studioは、絶対に必要になるまでパッケージをメモリにロードしないようにします。(たとえば、ユーザーがプロジェクトタイプを開いたり、パッケージが処理を提供するコマンドを実行したりします。)

この遅延ロードは、パフォーマンス上の理由から行われます。VSが起動時にすべての拡張機能とパッケージをロードした場合、IDEの起動ごとに必要以上に長く待機することになります。

MSDNのこのページでは、さらに詳しく説明しています。

投稿したコードスニペットに基づいて、パッケージは(Provide *属性を介して)機能を持っていることを登録しないため、VisualStudioにロードする本当の理由はありません。

于 2011-02-01T06:11:22.827 に答える