작업과 자원을 읽습니다
Contents
[
Hide
Show
]MPP 파일로 작업하는 동안 프로젝트에서 작업과 리소스를 읽어야 할 수도 있습니다. 이 기사는 VSTO 및 aspose.tasks for .net를 사용하여 프로젝트 데이터를 읽는 방법에 대한 실질적인 개요를 제공합니다.
소개
작업 및 리소스를 읽는 것은 종종 프로젝트 분석을 구축하거나 보고서 생성 또는 프로젝트 무결성을 검증하는 첫 번째 단계입니다. Microsoft Project 파일 (MPP)을 사용하면 다음 중 하나를 사용하여 달성 할 수 있습니다.
- VSTO (사무실을위한 비주얼 스튜디오 도구) - Microsoft Project 및 COM Interop이 필요합니다.
- aspose.tasks for .net - Microsoft 프로젝트에 의존하지 않고 프로젝트 데이터를 사용하기위한 독립형 API.
이 기사는 두 가지 접근 방식에서 작업 및 리소스 정보를 추출하는 방법을 간략하게 설명합니다.
VSTO를 사용하여 작업 및 리소스를 읽으십시오
VSTO를 사용하여 작업 및 리소스 데이터에 액세스하려면 :
- Visual Studio에서 새로운 프로젝트를 만듭니다.
- com 탭에서 Microsoft Project 12.0 객체 라이브러리에 대한 참조를 추가하십시오.
microsoft.office.interop.msproject
네임 스페이스를 가져옵니다.- 다음 샘플 코드를 사용하십시오.
1// Create Application object
2Application projectApplication = new ApplicationClass();
3object missingValue = System.Reflection.Missing.Value;
4
5// Open MPP file
6projectApplication.FileOpenEx(@"C:\Project1.mpp",
7 missingValue, missingValue, missingValue, missingValue,
8 missingValue, missingValue, missingValue, missingValue,
9 missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
10 missingValue, missingValue, missingValue, missingValue,
11 missingValue);
12
13Project project = projectApplication.ActiveProject;
14
15// Read all tasks
16foreach (Task task in project.Tasks)
17{
18 Console.WriteLine("Reading Task: " + task.Name);
19 Console.WriteLine("ID: " + task.ID);
20 Console.WriteLine("Start: " + task.Start);
21 Console.WriteLine("Finish: " + task.Finish);
22 Console.WriteLine("===========================\n");
23}
24
25// Read all resources
26foreach (Resource resource in project.Resources)
27{
28 string resourceType = resource.Type switch
29 {
30 PjResourceTypes.pjResourceTypeCost => "Cost",
31 PjResourceTypes.pjResourceTypeMaterial => "Material",
32 PjResourceTypes.pjResourceTypeWork => "Work",
33 _ => "Unknown"
34 };
35
36 Console.WriteLine("Reading Resource: " + resource.Name);
37 Console.WriteLine("ID: " + resource.ID);
38 Console.WriteLine("Type: " + resourceType);
39 Console.WriteLine("===========================\n");
40}
41
42Console.ReadLine();
Notes
- Tasks and resources are accessed through
project.Tasks
andproject.Resources
. - Each resource’s type is identified using
PjResourceTypes
. - VSTO depends on Microsoft Project being installed and available at runtime.
Read Tasks and Resources Using Aspose.Tasks for .NET
To achieve the same using Aspose.Tasks for .NET:
- Create a new Visual Studio project.
- Add a reference to Aspose.Tasks via the .NET tab.
- Import the
Aspose.Tasks
namespace. - Use the code example below.
1Project project = new Project("New Project.mpp");
2
3// Load all tasks
4TaskCollection allTasks = project.RootTask.Children;
5
6// Loop through each task and read information related to tasks
7foreach (Task task in allTasks)
8{
9 Console.WriteLine("Reading Task " + task.Get(Tsk.Name));
10 Console.WriteLine("ID: " + task.Get(Tsk.Id));
11 Console.WriteLine("Start: " + task.Get(Tsk.Start));
12 Console.WriteLine("Finish: " + task.Get(Tsk.Finish));
13}
14
15// Loop through each resource and read information related to resources
16foreach (Resource resource in project.Resources)
17{
18 string resourceType = null;
19 switch (resource.Get(Rsc.Type))
20 {
21 case ResourceType.Material:
22 resourceType = "Material";
23 break;
24 case ResourceType.Work:
25 resourceType = "Work";
26 break;
27 default:
28 resourceType = "Cost";
29 break;
30 }
31
32 Console.WriteLine("Reading Resource " + resource.Get(Rsc.Name));
33 Console.WriteLine("ID: " + resource.Get(Rsc.Id));
34 Console.WriteLine("Type: " + resourceType);
35}
하이라이트
project '객체는 작업 트래버스를 위해
roottask.children’에 대한 액세스를 제공합니다.- 리소스는 ‘리소스’컬렉션을 통해 액세스됩니다.
- Tasks는 Microsoft 프로젝트없이 캘린더, 확장 속성 및 기준선과 같은 고급 기능을 지원합니다.
비교 테이블
Feature | VSTO / Interop | Aspose.Tasks for .NET |
---|---|---|
Requires Microsoft Project | ✅ Yes | ❌ No |
Platform | 🖥 Windows only | ✅ Cross-platform |
Access Model | COM-based | Pure .NET API |
Ease of Deployment | ⚠ Limited | ✅ Self-contained |
Reading Resources | project.Resources | project.Resources |
Reading Tasks | project.Tasks | project.RootTask.Children |
요약
작업 및 리소스 추출은 Microsoft Project 파일로 작업 할 때 기본적인 기능입니다. VSTO는 COM Interop을 통해 프로젝트 파일을 사용하는 방법을 제공하지만 배포 시나리오와 플랫폼 제한이 제한되어 있습니다.
aspose.tasks for .net은 프로젝트 데이터를 읽고 처리하기위한 가벼운 크로스 플랫폼 및 관리 가능한 대안을 제공하여 최신 엔터프라이즈 애플리케이션 및 자동화 파이프 라인에 이상적입니다.
Aspose.tasks를 사용하여 프로젝트 데이터 액세스를 계속 탐색하려면 다음을 참조하십시오.