C# Project Server-计划与实际日期和基线日期的差异

C# Project Server-计划与实际日期和基线日期的差异,c#,csom,project-server,C#,Csom,Project Server,我正在尝试查找Microsoft Project Server中所有项目的进度差异。我正在使用CSOM和C#访问服务器,我确实获得了一些项目的详细信息 计划变更需要实际的开始/结束日期、基线开始/结束日期。当我在项目查询中包含开始和结束日期以加载到项目上下文时,如: projContext.Load(pubProj, d=> d.StartDate, d=>d.FinishDate, d=>d.Name, d=>d.CustomFields, d=>d.Des

我正在尝试查找Microsoft Project Server中所有项目的进度差异。我正在使用CSOM和C#访问服务器,我确实获得了一些项目的详细信息

计划变更需要实际的开始/结束日期、基线开始/结束日期。当我在项目查询中包含开始和结束日期以加载到项目上下文时,如:

   projContext.Load(pubProj, d=> d.StartDate, d=>d.FinishDate, d=>d.Name,
d=>d.CustomFields, d=>d.Description, d=>d.Id,d=>d.Owner, 
d=>d.PercentComplete, d=>d.LastPublishedDate, d=>d.ApprovedEnd, 
d=>d.ApprovedStart);
我确实看到开始日期和结束日期正在填充,但开始日期与我在UI上的项目信息中看到的不同。此外,我也不知道如何获得我们将在项目跟踪视图中看到的基线日期


有人能帮我吗?

刚刚发现基线日期不是项目的属性,而是从项目的第一个主要任务中选取的。因此,一旦您有了第一个任务的基线开始和结束日期,项目基线日期就会反映在跟踪视图中

if (pubProj.Tasks != null && pubProj.Tasks.Count > 0)
{
    tempProj.BaseEndDate = pubProj.Tasks[0].BaselineFinish;
    tempProj.BaseStartDate = pubProj.Tasks[0].BaselineStart;
    tempProj.BaselineDuration = (pubProj.Tasks[0].BaselineDuration != null && pubProj.Tasks[0].BaselineDuration.Length > 2) ? Convert.ToInt16(Convert.ToDecimal(pubProj.Tasks[0].BaselineDuration.Remove(pubProj.Tasks[0].BaselineDuration.Length - 1))) : 0;
    tempProj.FinishVariance = (pubProj.Tasks[0].FinishVariance != null && pubProj.Tasks[0].FinishVariance.Length > 2) ? Convert.ToInt16(Convert.ToDouble(pubProj.Tasks[0].FinishVariance.Remove(pubProj.Tasks[0].FinishVariance.Length - 1))) : 0;
}
else
{
    tempProj.BaselineDuration = 0;
    tempProj.FinishVariance = 0;
}