使用.NET中MPXJ库更新MS Project文件链接并转JSON遇阻求助
解决MPXJ更新MS Project任务链接(F9刷新)无效的问题
updateStructure()方法仅用于刷新项目内部结构(如任务层级、日历关联映射),无法触发MS Project中按F9执行的完整项目计算(包括任务依赖重算、日期更新、工时/成本计算等)。要实现等效于F9的刷新效果,需使用MPXJ的ProjectCalculation类执行项目计算,具体操作如下:
修正后的代码示例
ProjectReader reader = new UniversalProjectReader(); ProjectFile projectFile = reader.read("inputFile.mpp"); // 遍历任务(保留原逻辑) foreach (Task task in projectFile.Tasks) { Console.Out.WriteLine(task.Name); } // 执行等效于F9的项目计算 var calculationConfig = new CalculationConfig(); // 可按需开启/关闭特定计算项,默认配置已覆盖F9核心计算逻辑 calculationConfig.SetCalculateTaskDates(true); calculationConfig.SetCalculateTaskDependencies(true); calculationConfig.SetCalculateWork(true); ProjectCalculation.Calculate(projectFile, calculationConfig); // 写入JSON文件 ProjectWriter writer = ProjectWriterUtility.getProjectWriter("outputFile.json"); writer.write(projectFile, "outputFile.json");
关键说明
CalculationConfig可精细控制计算范围,比如仅计算任务日期或依赖,默认配置已覆盖F9的核心计算逻辑UniversalProjectReader默认会自动加载任务依赖关系,无需额外配置即可保证计算基础数据完整- 若涉及跨项目链接,需额外配置外部项目加载路径,单项目场景无需处理
内容的提问来源于stack exchange,提问作者Андрей Михалевич
相关产品推荐
相关产品推荐

