我需要使用C#获取GUID
文件的C# .proj
。我从.proj
文件中提取了内容,就像使用XML读取文件并获取标签值一样。
// XML标签
<ProjectGuid>{7701AEB4-8549-4FB2-B34C-E71D0B7DE59D}</ProjectGuid>
但我需要知道C#中是否有任何特定属性来检索现有的.proj文件GUID,类似这样。
//码
int iIncriment = 0;
foreach (var objProj in vhaSolution.Projects)
{
EnvDTE.Project prj1 = (EnvDTE.Project)objProj;
iIncriment++;
if (string.Equals(testProjectName + ".proj", prj1.Name))
{
prj = vhaSolution.Projects.Item(iIncriment);
}
}
string GUID = prj.GetGUID() ???
最佳答案
您可以使用IVsHierarchy.GetGuidProperty方法:
var solution = serviceProvider.GetService(typeof(SVsSolution)) as IVsSolution;
IVsHierarchy hierarchy;
solution.GetProjectOfUniqueName(project.FullName, out hierarchy);
if (hierarchy != null)
{
Guid projectGuid;
hierarchy.GetGuidProperty(
VSConstants.VSITEMID_ROOT,
(int)__VSHPROPID.VSHPROPID_ProjectIDGuid,
out projectGuid);
}