Добавление новой задачи с Aspose.tasks против VSTO

Работая с файлами Microsoft Project (MPP/XML), вам часто нужно добавлять новые задачи в проекты. В этой статье показано, как загружать файлы MPP в ваши приложения .NET и добавить новые задачи, используя традиционные API -интерфейсы VSTO Interop и современные Aspose.tasks для библиотеки .NET.

Обзор

Способность программно управлять задачами имеет важное значение для автоматических рабочих процессов планирования проекта. Эта статья демонстрирует, как вставить новые задачи в файлы проекта Microsoft, используя два подхода:

Оба примера иллюстрируют один и тот же сценарий - добавление одной задачи с именем «Task1» ` - чтобы помочь вам четко понять различия в синтаксисе, зависимостях и модели программирования.

Добавьте задачу, используя VSTO

Следующий код демонстрирует, как добавить новую задачу в существующий файл .mpp с использованием VSTO (инструменты Visual Studio для Office). Этот подход зависит от Com Interop и требует, чтобы Microsoft Project был установлен и должным образом лицензирован на машине.

 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);

Примечания

Добавить задачу с помощью Aspose.Tasks для .NET

Напротив, код ниже показывает, как выполнить ту же задачу с помощью Aspose.Tasks для .NET. Этот API работает независимо от Microsoft Project и идеально подходит для веб-приложений, служб и контейнерных сред.

 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);

Основные моменты

Резюме

АспектVSTO / ВзаимодействиеAspose.Tasks для .NET
Требуется MS Project✅ Да❌ Нет
Тип зависимостиCOM (Microsoft.Office.Interop.MSProject)Чистый .NET
Поддержка разных платформ❌ Только для Windows✅ Windows, Linux, macOS (через .NET)
Пригодность для развертывания⚠ Только для настольных компьютеров/серверов✅ Веб, контейнеры, бессерверные
Сложность кода⚠ Высокая (многословный, шаблонный)✅ Простой и выразительный

Aspose.Tasks предлагает современные, масштабируемые и поддерживаемые решения для работы с форматами Microsoft Project. Переход с VSTO открывает большую гибкость развертывания, повышенную надежность и более удобную для разработчиков поверхность API.

Чтобы продолжить изучение, посетите следующие страницы:

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.