2

Я использую проекты VS2010 и Sharepoint 2010. У меня есть VS 2010 Addin, и мне нужно программно определить тип типа.Определить тип проекта (ProjectTypeGuids) в VS2010 программно для проектов Sharepoint

Я редактировать мой csproj (для Sharepoint проекта), и я видел это ProjectTypeGuids:

{BB1F664B-9266-4fd6-B973-E1E44974B511};{14822709-B5A1-4724-98CA-57A101D1B079};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 

Любой ПОЛНЫЙ список известных типов проектов Guids, включены проекты Sharepoint?

Как я могу получить ProjectTypeGuids программно для моего EnvDTE.Project в C#?

Ссылки:

Список известного типа проекта Guids
http://www.mztools.com/articles/2008/mz2008017.aspx

Какое значение ProjectTypeGuids тега в файле Visual Studio проекта
http://social.msdn.microsoft.com/Forums/en/vsx/thread/d9d05cdc-96a1-4044-95d8-a4f8885a660a

What is the significance of ProjectTypeGuids tag in the visual studio project file

http://www.mztools.com/articles/2007/MZ2007016.aspx

ответ

1

Carlos J.Quintero:

См:

МЕТОДИЧЕСКИЕ: Получить вкус проекта (подтипа) проекта Visual Studio из дополнения в

http://www.mztools.com/Articles/2007/MZ2007016.aspx

Там не является полным списком, поскольку каждый может создавать новые типы проектов, поэтому используются идентификаторы GUID.

Вы можете создавать проекты SharePoint 2010 и получать Гиды, вот как я получил этот список.

Mathias Herbaux:

Если вы можете получить экземпляр IVsSolution, вы можете иметь все GUID, которые составляют проект:

public bool IsTypedProject(IVsSolution solution, EnvDTE.Project project) 
     { 
      IVsHierarchy hierarchy; 
      solution.GetProjectOfUniqueName(project.UniqueName, out hierarchy); 
      IVsAggregatableProjectCorrected AP; 
      AP = hierarchy as IVsAggregatableProjectCorrected; 
      string projTypeGuids = string.Empty; 
      if (AP != null) 
      { 
       AP.GetAggregateProjectTypeGuids(out projTypeGuids); 
       if (projTypeGuids.ToUpper().Contains("YOUR_GUID".ToUpper())) 
       { 
        return true; 
       } 
      } 

      return false; 
     } 

Может быть, вы можете запросить услугу, как это:

(IVsSolution)ServiceProvider.GetService(typeof(SVsSolution)) 

Литература:
http://social.msdn.microsoft.com/Forums/da-DK/vsx/thread/bf18037e-479a-4ca8-ae64-81ee39652d73