MergeProject CreateMergeProjectPlan(SolutionProject project)
{
MergeProject mergePro = new MergeProject();
List <ProjectAsmReference> asmRefs = _solutionMx.GetReferenceAsmList(project.RelativePath);
mergePro.PostMergeRefs = _solutionMx.GetPostMergeReferences(project.RelativePath);
//
string fullProjectDir = System.IO.Path.GetDirectoryName(_solutionMx.SolutionDir + "\\" + project.RelativePath);
string projFilename = System.IO.Path.GetFileName(project.RelativePath);
int j = asmRefs.Count;
for (int i = 0; i < j; ++i)
{
ProjectAsmReference asmRef = asmRefs[i];
switch (asmRef.Kind)
{
case ProjectAsmReferenceKind.ProjectReference:
string result = System.IO.Path.Combine(fullProjectDir, asmRef.Name);
if (!System.IO.File.Exists(result))
{
}
mergePro.LoadSubProject(result);
break;
case ProjectAsmReferenceKind.Reference:
mergePro._asmReferences.Add(asmRef.Name);
break;
}
}
//----------
//find
var pro = GlobalLoadedProject.LoadProject(fullProjectDir + "\\" + projFilename);
foreach (var item in pro.AllEvaluatedProperties)
{
//select some our interest features
switch (item.Name)
{
case "DefineConstants":
mergePro.DefineConstants = item.EvaluatedValue;
break;
case "TargetFrameworkVersion":
mergePro.TargetFrameworkVersion = item.EvaluatedValue;
break;
}
}
return(mergePro);
}