Настраиваемая задача MSBuild в IronPython / SharpDevelop 3.1 - PullRequest
0 голосов
/ 10 июня 2009

Я пытаюсь создать пользовательскую задачу MSBuild в IronPython, используя SharpDevelop 3.1 (IronPython 2.0.0).

Чтобы создать пользовательскую задачу, класс должен реализовать интерфейс Microsoft.Build.Framework.ITask. Согласно этой записи вы можете реализовать интерфейс .NET, унаследовав его.

Интерфейс ITask определяет два свойства, BuildEngine и HostObject, а также метод Execute. Метод execute не принимает аргументов и возвращает логическое значение.

Я написал следующий код с соответствующими ссылками в решении:

import Microsoft.Build.Framework as mbf
import Microsoft.Build.Utilities as mbu

class CustomTask(mbf.ITask):
    '''
    Print a message to the log.
    '''
    def __init__(self):
        self.BuildEngine    =   None
        self.HostObject     =   None

    def Execute():
        log     =   mbu.TaskLoggingHelper(self)
        log.LogMessageFromText('This is a test.', mbu.MessageImportance.High)
        return True

Код строится без ошибок. Когда я использую MSBuild Sidekick, чтобы попытаться создать файл MSBuild, который использует элемент «UsingTask» для ссылки на получающуюся DLL, он жалуется, что DLL не содержит никаких задач.

Я предполагаю, что проблема связана с неполной реализацией интерфейса с моей стороны (скорее всего, со свойствами, поскольку я имитирую их с атрибутами) или с проблемой версии (IronPython 2.0 против 2.1 в посте). Какой-нибудь опыт или совет, который будет предложен?

...