none
VSX:如何让我的VSPackage在visual studio启动时同时启动? RRS feed

  • 问题

  • rt。thanks。

    我通过标记[ProvideAutoLoad(UIContextGuids.NoSolution)]可以在打开vs时加载Package。

    在Package的init中,我通过下面代码订阅一些事件:

    DTE dte = (DTE)GetGlobalService(typeof(DTE));

    dte.Events.DocumentEvents.DocumentOpening += DocumentEvents_DocumentOpening;
    dte.Events.DocumentEvents.DocumentClosing += VSPackage1Package_DocumentClosing;
    dte.Events.CommandEvents.BeforeExecute += CommandEvents_BeforeExecute;
    dte.Events.SolutionEvents.Opened += SolutionEvents_Opened;

    可是无论哪个事件发生都无法执行我的代码回调方法。是什么地方的问题?

    2014年1月2日 9:53

答案

  • 你好,

    请检查从VSPackage中获得DTE对象的方式以及添加ProvideAutoLoad 相关属性值是否正确。

    根据相关帖子 How to access project configuration properties from a package?,有以下三种方式从VSPackage中获得DTE对象:

    1. EnvDTE.DTE dte = (EnvDTE.DTE) GetService(typeof(EnvDTE.DTE));
    2. EnvDTE.IVsExtensibility extensibility = GetService(typeof(EnvDTE.IVsExtensibility)) as EnvDTE.IVsExtensibility;
        EnvDTE.DTE dte = extensibility.GetGlobalsObject(null).DTE as EnvDTE.DTE;
    3. EnvDTE.DTE dte = System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.9.0") as EnvDTE.DTE;

    另外,以下为其它相关链接:

    How to: Autoload a VSPackage

    Visual Studio Package Initialize method does not call when debugging

    如果此问题仍未解决,请提供更多代码以及提示信息以做分析。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年1月3日 7:21