Agregar una nueva tarea con Aspose.Tasks vs vsto

Mientras trabaja con archivos de Microsoft Project (MPP/XML), a menudo necesita agregar nuevas tareas a los proyectos. Este artículo muestra cómo cargar archivos MPP en sus aplicaciones .NET y agregar nuevas tareas utilizando las API de interota VSTO tradicionales y el aspositivo moderno. Tasks para la biblioteca .NET.

Descripción general

La capacidad de administrar programáticamente las tareas es esencial en los flujos de trabajo de planificación de proyectos automatizados. Este artículo demuestra cómo insertar nuevas tareas en los archivos del proyecto de Microsoft utilizando dos enfoques:

Ambos ejemplos ilustran el mismo escenario, agregando una sola tarea llamada " Tarea1 ", para ayudarlo a comprender claramente las diferencias en la sintaxis, las dependencias y el modelo de programación.

Agregue una tarea usando vsto

El siguiente código demuestra cómo agregar una nueva tarea a un archivo existente ‘.mpp` usando VSSTO (Visual Studio Tools for Office). Este enfoque depende de COM Interop y requiere que el proyecto Microsoft se instale y se licencie correctamente en la máquina.

 1Microsoft.Office.Interop.MSProject.Application projectApplication = new Application();
 2
 3object missingValue = System.Reflection.Missing.Value;
 4
 5projectApplication.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
12Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
13
14Microsoft.Office.Interop.MSProject.Task task;
15task = project.Tasks.Add("Task1", 1);
16
17task.Start = "8/23/2012";
18task.Duration = 3 * 8 * 60;  // Duration in minutes (3 working days * 8 hours/day * 60 minutes)
19task.Text1 = "Task1";
20
21projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);

Notas

Agregar una tarea usando Aspose.Tasks para .NET

En cambio, el código a continuación muestra cómo realizar la misma tarea usando Aspose.Tasks para .NET. Esta API funciona independientemente de Microsoft Project y es ideal para aplicaciones web, servicios y entornos contenedorizados.

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

Aspectos destacados

Resumen

AspectoVSTO / InteropAspose.Tasks para .NET
Requiere MS Project✅ Sí❌ No
Tipo de dependenciaCOM (Microsoft.Office.Interop.MSProject).NET puro
Compatibilidad multiplataforma❌ Solo Windows✅ Windows, Linux, macOS (vía .NET)
Idoneidad para la implementación⚠ Solo escritorio/servidor✅ Web, contenedores, sin servidor
Complejidad del código⚠ Alta (detallado, con muchos elementos repetitivos)✅ Simple y expresivo

Aspose.Tasks ofrece soluciones modernas, escalables y fáciles de mantener para trabajar con formatos de Microsoft Project. Migrar desde VSTO ofrece mayor flexibilidad de implementación, mayor fiabilidad y una interfaz de API más intuitiva para desarrolladores.

Para continuar explorando, consulte las siguientes páginas:

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.