Hinzufügen einer neuen Aufgabe mit Aspose.Tasks vs vsto

Während der Arbeit mit Microsoft Project (MPP/XML) -Dateien müssen Sie häufig neue Aufgaben hinzufügen. In diesem Artikel wird angezeigt, wie MPP -Dateien in Ihren .NET -Anwendungen geladen werden und neue Aufgaben mit herkömmlichen VSTO Interop -APIs und den modernen Aspose.Tasks für die .NET -Bibliothek hinzugefügt werden.

Überblick

Die Fähigkeit, Aufgaben programmatisch zu verwalten, ist für automatisierte Projektplanungsworkflows von entscheidender Bedeutung. Dieser Artikel zeigt, wie neue Aufgaben mit zwei Ansätzen in Microsoft -Projektdateien eingefügt werden:

Beide Beispiele veranschaulichen das gleiche Szenario - Hinzufügen einer einzelnen Aufgabe mit dem Namen "" “Task1” " -, um Ihnen dabei zu helfen, die Unterschiede in der Syntax, der Abhängigkeiten und des Programmiermodells klar zu verstehen.

Fügen Sie eine Aufgabe mit VSTO hinzu

Der folgende Code zeigt, wie eine neue Aufgabe zu einer vorhandenen .mpp -Datei mit VSTO (Visual Studio Tools for Office) hinzugefügt wird. Dieser Ansatz hängt von COM Interop ab und erfordert, dass das Microsoft -Projekt auf dem Computer installiert und ordnungsgemäß lizenziert werden kann.

 1    Microsoft.Office.Interop.MSProject.Application projectApplication = new Application();
 2
 3    object missingValue = System.Reflection.Missing.Value;
 4
 5    projectApplication.FileOpenEx(@"C:\Project1.mpp",
 6        missingValue, missingValue, missingValue, missingValue,
 7        missingValue, missingValue, missingValue, missingValue,
 8        missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
 9        missingValue, missingValue, missingValue, missingValue,
10        missingValue);
11
12    Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
13
14    Microsoft.Office.Interop.MSProject.Task task;
15    task = project.Tasks.Add("Task1", 1);
16
17    task.Start = "8/23/2012";
18    task.Duration = 3 * 8 * 60;  // Duration in minutes (3 working days * 8 hours/day * 60 minutes)
19    task.Text1 = "Task1";
20
21    projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);

Notes

Add a Task Using Aspose.Tasks for .NET

In contrast, the code below shows how to accomplish the same task using Aspose.Tasks for .NET. This API works independently of Microsoft Project and is ideal for web applications, services, and containerized environments.

 1    Project project = new Project("New Project.mpp");
 2
 3    Task task = project.RootTask.Children.Add("Task1");
 4    task.Set(Tsk.ActualStart, DateTime.Parse("23-Aug-2012"));
 5
 6    // Set duration in hours
 7    task.Set(Tsk.Duration, project.GetDuration(24, TimeUnitType.Hour));
 8    task.Set(Tsk.DurationFormat, TimeUnitType.Day);
 9
10    project.Save("AddNewTask_out.xml", SaveFileFormat.XML);

Highlights

– Aufgaben werden mithilfe eines sauberen Objektmodells unter „RootTask.Children“ erstellt. – Die Dauer kann mithilfe von „TimeUnitType“ in Stunden, Tagen oder anderen Einheiten angegeben werden. – Die Methode „Set“ ermöglicht typsichere, feldspezifische Aktualisierungen der Aufgabeneigenschaften. – Es ist keine COM-Interop- oder Office-Installation erforderlich – der Code läuft plattformübergreifend.

Zusammenfassung

AspectVSTO / InteropAspose.Tasks for .NET
Requires MS Project✅ Yes❌ No
Dependency TypeCOM (Microsoft.Office.Interop.MSProject)Pure .NET
Cross-platform support❌ Windows-only✅ Windows, Linux, macOS (via .NET)
Deployment suitability⚠ Desktop/server only✅ Web, containers, serverless
Code complexity⚠ High (verbose, boilerplate-heavy)✅ Simple and expressive

Aspose.Tasks ermöglicht moderne, skalierbare und wartungsfreundliche Lösungen für die Arbeit mit Microsoft Project-Formaten. Die Migration von VSTO bietet mehr Flexibilität bei der Bereitstellung, höhere Zuverlässigkeit und eine benutzerfreundlichere API-Oberfläche.

Weitere Informationen finden Sie auf den folgenden Seiten:

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.