Параллельное выполнение задачи на NAnt - PullRequest
4 голосов
/ 10 марта 2011

Я использую NAnt для сборки 5 разных пакетов установщика для одного и того же программного обеспечения в разных конфигурациях.Эти задачи можно распараллелить, поскольку они не зависят друг от друга.Installshield, который строит эти конфигурации, кажется неэффективным в отношении использования многоядерных процессоров (загрузка ограничена 25% CPU на 4-ядерном компьютере).Я искал простой способ парализовать задачи и нашел только это , что в значительной степени то, что мне нужно.Однако исходный код этого проекта недоступен, и он ссылается на некоторые типы, которые недоступны в последней версии NAnt 0.91, которая требуется для поддержки .NET 4.0.

Любые идеи о том, как решить эту проблему, кроме написания моего собственного расширения для NAnt?

Ответы [ 4 ]

4 голосов
/ 15 марта 2011

Я действительно нашел исходный код, написав автору. Теперь это часть проекта под названием CIFactory, доступ к исходному коду которого можно получить через домашнюю страницу проекта . С помощью нескольких модификаций я смог запустить его на последней версии NAnt. Я опубликую его, когда проработаю несколько изломов, в основном касательно того, куда выводится поток.

3 голосов
/ 14 марта 2011

Если вы посмотрите на страницу, далее вниз в комментариях Ссылки на исходный код

Источник доступен. 'Конечно, отражатель будет разбираться с правильным плагином ...

0 голосов
/ 12 марта 2016

Взгляните на https://github.com/NAntCrossCompile/NAnt.Parallel В разработке есть плагин, который позволяет параллельно выполнять задачи на основе наборов файлов, папок, строк ...

0 голосов
/ 11 марта 2011

Честно говоря, это не особенно сложно, но я не знаю ни одного другого готового проекта или задания для NAnt, которое бы это делало.Таким образом, ваш единственный вариант - написать собственную реализацию параллельной задачи.Тем не менее, поскольку парень предоставляет скомпилированные сборки, вы всегда можете посмотреть на них в Reflector и получить общее представление, если вы понимаете, что я имею в виду:)

...