C# 如何在MSC项目中以编程方式分配滞后#

C# 如何在MSC项目中以编程方式分配滞后#,c#,ms-project-server-2016,C#,Ms Project Server 2016,Microsoft文档link方法描述如下: public void LinkPredecessors (object Tasks, Microsoft.Office.Interop.MSProject.PjTaskLinkType Link = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjFinishToStart, object Lag); 如何为“对象滞后”指定滞后值?下面的代码用于分配前置任务和任务链接类型,但是,我不知道如何

Microsoft文档
link方法描述如下:

public void LinkPredecessors (object Tasks, Microsoft.Office.Interop.MSProject.PjTaskLinkType Link = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjFinishToStart, object Lag);
如何为“对象滞后”指定滞后值?下面的代码用于分配前置任务和任务链接类型,但是,我不知道如何添加延迟

Microsoft.Office.Interop.MSProject.PjTaskLinkType LinkType;

    var p = IApp.ActiveProject;
    foreach (var y in tasksPred)
    {
        int intTaskType = Convert.ToInt32(y.RelationshipType);

        switch (intTaskType)
        {
            case 0:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjFinishToFinish;
                break;
            case 1:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjFinishToStart;
                break;
            case 2:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjStartToFinish;
                break;
            case 3:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjStartToStart;
                break;
            default:
                LinkType = Microsoft.Office.Interop.MSProject.PjTaskLinkType.pjFinishToStart;
                break;
        }

        if (y.UniqueIDPredecessor != "")
        {
           p.Tasks[Convert.ToInt32(y.UniqueID)].LinkPredecessors(p.Tasks[Convert.ToInt32(y.UniqueIDPredecessor)], LinkType);
        }
    }
该方法需要一个用于延迟的字符串。从文档中:

一个字符串,指定链接任务之间的延迟时间的持续时间

例如:

  • “2d”表示两个工作日的延迟
  • “30ed”表示30天的滞后时间
  • “4h”表示4个工作小时的延迟
  • “3w”表示3个工作周的延迟
  • “30米”表示30个工作分钟的延迟
在时间单位之前添加“e”将使其成为elapased,如日历日。否则,滞后时间将跟随工作日历。

该方法需要一个滞后字符串。从文档中:

一个字符串,指定链接任务之间的延迟时间的持续时间

例如:

  • “2d”表示两个工作日的延迟
  • “30ed”表示30天的滞后时间
  • “4h”表示4个工作小时的延迟
  • “3w”表示3个工作周的延迟
  • “30米”表示30个工作分钟的延迟

在时间单位之前添加“e”将使其成为elapased,如日历日。否则,延迟时间将遵循工作日历。

您肯定不会使用互操作。即使MS Project使用服务器的web服务自2013年起,最好的方法是使用Javascript、.NET中的(客户端对象模型)或任何可以进行HTTP调用的语言。2019年,旧的PSI web服务被删除,这是肯定的,因为您不使用互操作。即使MS Project使用服务器的web服务自2013年起,最好的方法是使用Javascript、.NET中的(客户端对象模型)或任何可以进行HTTP调用的语言。2019年,旧的PSI web服务被删除