【问题标题】:How to programmatically save a copy of a Microsoft Project Online project?如何以编程方式保存 Microsoft Project Online 项目的副本?
【发布时间】:2019-08-12 14:35:51
【问题描述】:

我需要经常在 Microsoft Project Online 上保存存储在我的 PWA 实例中的所有项目的本地副本。我有数百个,所以手动操作不是一种选择。

我已经能够使用Project Server CSOM and .NET 连接到 PWA 实例并读取数据。但我无法在 Microsoft.ProjectServer.Client 命名空间中找到导出这些数据并将其本地保存到任何 MS Project 可读文件的方法。

这有可能吗?

或者,欢迎使用不涉及 Project Server CSOM 的任何其他方式来实现这一点。

编辑:我还尝试通过 Project Online REST API 获取数据,因此我可以获得一个 XML 文件,我可以像使用 MSPDI 文件一样使用它。但是 MS Project Professional(桌面应用程序)和 MPXJ library 都没有认出它,我可能需要做一些重大的改造,这并不能保证它甚至可以工作......

【问题讨论】:

    标签: project-server project-online


    【解决方案1】:

    最后我决定走“丑但能工作”的方式,直接告诉MS Project桌面客户端连接,打开并本地保存项目,并带有一些C#代码:

    private static void start()
    {
        var objProcess = Process.Start(@"winproj.exe", "/s https://PWA-URL");
    }
    
    static void Main(string[] args)
    {
        var backgroundThread = new Thread(new ThreadStart(start));
        backgroundThread.Start();
        Thread.Sleep(10000);
    
        ApplicationClass objProject = new ApplicationClass
        {
            Visible = false
        };
    
        object oMissing = System.Reflection.Missing.Value;
        object oFile = @"<>\test-project";
        object oFormat = "MSProject.mpp";
        object oReadOnly = true;
        objProject.DisplayAlerts = false;
    
        objProject.FileOpen(oFile, oReadOnly, PjMergeType.pjDoNotMerge, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oFormat, oMissing, PjPoolOpen.pjPoolReadOnly, oMissing, oMissing, oMissing, oMissing);
        objProject.FileSaveAs(@"C:\Windows\Temp\LocalCopy.mpp");
        objProject.Quit(PjSaveType.pjDoNotSave);
    }
    

    Windows 凭据用于连接到 PWA,虽然可以指定不同的用户和密码,但我没有尝试过 (ApplicationClass.FileOpen)。

    还应该导入 Microsoft.Office.Interop.MSProject.dll 来编译项目。

    【讨论】:

    • FWIW 我相信这是保存为 .mpp 文件的唯一方法。
    猜你喜欢
    • 2021-07-30
    • 2016-07-27
    • 2012-02-02
    • 2011-05-01
    • 2010-09-14
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多