Udostępnij za pośrednictwem


Weryfikowanie podtypów projektu w czasie wykonywania

Pakiet VSPackage, który zależy od niestandardowego podtypu projektu, powinien zawierać logikę, aby wyszukać ten podtyp, aby można było bezpiecznie zakończyć się niepowodzeniem, jeśli podtyp nie jest obecny. Poniższa procedura pokazuje, jak sprawdzić obecność określonego podtypu.

Aby sprawdzić obecność podtypu

  1. Pobierz hierarchię projektu z obiektów projektu i rozwiązania jako IVsHierarchy obiektu, dodając następujący kod do pakietu VSPackage.

    EnvDTE.DTE dte;
    dte = (EnvDTE.DTE)Package.GetGlobalService(typeof(EnvDTE.DTE));
    
    EnvDTE.Project project;
    project = dte.Solution.Projects.Item(1);
    
    IVsSolution solution;
    solution = (IVsSolution)Package.GetGlobalService(typeof(SVsSolution));
    
    IVsHierarchy hierarchy;
    hierarchy = solution.GetProjectOfUniqueName(project.UniqueName);
    
    
  2. Rzutowanie hierarchii na IVsAggregatableProjectCorrected interfejs.

    IVsAggregatableProjectCorrected AP;
    AP = hierarchy as IVsAggregatableProjectCorrected;
    
    
  3. Pobierz listę identyfikatorów GUID typu projektu, wywołując element GetAggregateProjectTypeGuids.

    string projTypeGuids = AP.GetAggregateProjectTypeGuids().ToUpper();
    
    
  4. Sprawdź listę identyfikatorów GUID określonego podtypu.

    // Replace the string "MyGUID" with the GUID of the subtype.
    string guidMySubtype = "MyGUID";
    if (projTypeGuids.IndexOf(guidMySubtype) > 0)
    {
        // The specified subtype is present.
    }