我使用VS2010和Sharepoint 2010项目。 我有一个VS 2010 Addin,我需要以编程方式检测类型项目。
我编辑了我的csproj(针对Sharepoint Project),我看到了这个ProjectTypeGuids:
{BB1F664B-9266-4fd6-B973-E1E44974B511};{14822709-B5A1-4724-98CA-57A101D1B079};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
任何已知项目类型Guids的 FULL 列表,包括Sharepoint项目?
如何在C#中以编程方式为我的EnvDTE.Project获取ProjectTypeGuids?
参考文献:
已知项目类型Guids列表 http://www.mztools.com/articles/2008/mz2008017.aspx
Visual Studio项目文件中ProjectTypeGuids标记的含义是什么? 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
答案 0 :(得分:1)
Carlos J.Quintero:
请参阅:
HOWTO:从加载项
获取Visual Studio项目的项目风格(子类型)http://www.mztools.com/Articles/2007/MZ2007016.aspx
没有完整的列表,因为每个人都可以创建新的项目类型,这就是使用GUID的原因。
您可以创建SharePoint 2010项目并获取Guids,这就是我获取该列表的方式。
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