Erstellen Sie Ressourcen und verknüpfen mit Aufgaben
Während der Arbeit mit MPP -Dateien müssen Sie möglicherweise Ressourcen erstellen und mit Aufgaben von Ihrem Projekt verknüpfen. Dieser Artikel zeigt, wie MPP -Dateien in Ihren .NET -Anwendungen geladen werden und Aufgaben sowohl VSTO als auch Aspose.Tasks für .NET Ressourcen zuweisen.
Einführung
Bei der Projektplanung ermöglicht die Assoziationsressourcen mit Aufgaben die Planung der Arbeitsbelastung, die Kostenschätzung und die Fortschrittsverfolgung. Ressourcen repräsentieren in der Regel Personen, Ausrüstung oder Material, und ihre ordnungsgemäße Zuordnung ist der Schlüssel für eine sinnvolle Projektanalyse.
Dieser Artikel zeigt, wie man programmatisch ist:
- Fügen Sie einer Microsoft -Projektdatei neue Ressourcen hinzu.
- Weisen Sie Aufgaben diese Ressourcen zu.
Die Funktionalität wird sowohl anhand des Legacy VSTO Interop als auch mit den modernen Aspose.Tasks für .NET -API demonstriert.
Erstellen Sie mit VSTO Ressourcen und Link zu Aufgaben
Um Ressourcen zu erstellen und sie mit Microsoft Office Interop mit Aufgaben zu verknüpfen:
- Erstellen Sie ein Visual Studio -Projekt.
- Fügen Sie einen Verweis auf Microsoft -Projekt 12.0 Objektbibliothek aus der Registerkarte com hinzu.
- Importieren Sie
microsoft.office.interop.mproject
. - Verwenden Sie das Code -Beispiel unten.
Vor und nach Screenshots zeigen die Projektstruktur in Gantt- und Ressourcenansichten.
📎 Eingabedatei: Gantt -Diagrammansicht
📎 Eingabedatei: Ressourcenblattansicht
Beispiel für VSto -Code
1 Microsoft.Office.Interop.MSProject.Application projectApplication = new Application();
2 object missingValue = System.Reflection.Missing.Value;
3
4 projectApplication.FileOpenEx(@"SampleProject.mpp",
5 missingValue, missingValue, missingValue, missingValue,
6 missingValue, missingValue, missingValue, missingValue,
7 missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
8 missingValue, missingValue, missingValue, missingValue,
9 missingValue);
10
11 Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
12
13 int iResourceId = 1;
14
15 foreach (Task tsk in project.Tasks)
16 {
17 string developer = "Developer0" + iResourceId;
18 project.Resources.Add(developer, iResourceId);
19 tsk.Assignments.Add(tsk.ID, iResourceId, missingValue);
20 iResourceId++;
21 }
22
23 projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);
Ausgabedatei: Gantt-Diagrammansicht
Ausgabedatei: Ressourcenblattansicht
Hinweise
– Ressourcen werden sequenziell hinzugefügt und pro Aufgabe zugewiesen. – Die Methode „Assignments.Add“ erfordert Aufgaben- und Ressourcenkennungen. – COM-Interop erfordert ein sorgfältiges Lebenszyklus- und Referenzmanagement.
Ressourcen erstellen und mit Aufgaben verknüpfen mit Aspose.Tasks für .NET
So erreichen Sie dies mit Aspose.Tasks:
- Erstellen Sie ein Visual Studio-Projekt.
- Fügen Sie über die Registerkarte .NET eine Referenz auf Aspose.Tasks hinzu.
- Importieren Sie den Namespace „Aspose.Tasks“.
- Verwenden Sie den unten stehenden Beispielcode.
1Project project = new Project("New Project.mpp");
2
3// Declare ChildTasksCollector class object
4ChildTasksCollector collector = new ChildTasksCollector();
5
6// Use TaskUtils to get all children tasks in RootTask
7TaskUtils.Apply(project.RootTask, collector, 0);
8
9// Define Resources
10for (int i = 0; i <= 4; i++)
11{
12 // Add resource to project
13 Resource newResource = project.Resources.Add("Developer0" + i);
14 newResource.Set(Rsc.Type, ResourceType.Work);
15
16 // Define assignment
17 ResourceAssignment newResourceAssignment = project.ResourceAssignments.Add((Task)collector.Tasks[i], newResource);
18}
19
20project.Save("CreateResourcesAndLinkToTasks_out.mpp", SaveFileFormat.MPP);
Highlights
– Ressourcen werden über die Methode „project.Resources.Add“ hinzugefügt. – Zuweisungen werden über „project.ResourceAssignments.Add(task, resource)“ mit Aufgaben verknüpft. – Die API ist übersichtlich, vollständig verwaltet und mit Serverumgebungen kompatibel.
Vergleichstabelle
Feature | VSTO / Interop | Aspose.Tasks for .NET |
---|---|---|
Microsoft Project required | ✅ Yes | ❌ No |
Platform support | 🖥 Windows only | ✅ Cross-platform |
Deployment-friendly | ❌ Requires Office runtime | ✅ Self-contained .NET |
API verbosity | ⚠ High | ✅ Minimal and intuitive |
Assignment method | Assignments.Add(taskID, resourceID) | ResourceAssignments.Add(task, res) |
Output file format flexibility | Limited | ✅ MPP, XML, PDF, HTML, etc. |
Zusammenfassung
Das Erstellen und Zuweisen von Ressourcen ist ein wichtiger Schritt für einen realistischen und nachverfolgbaren Projektplan. VSTO bietet zwar nativen Zugriff auf das Objektmodell von Microsoft Project, ist jedoch mit Einschränkungen hinsichtlich Portabilität, Skalierbarkeit und Codekomplexität verbunden.
Aspose.Tasks für .NET bietet eine High-Level-API für effizientes Ressourcenmanagement in MPP-Dateien – ganz ohne Microsoft Project-Installation. Damit ist es die ideale Lösung für Webanwendungen, Dienste und plattformübergreifende .NET-Workloads.
Ähnliche Szenarien finden Sie hier: