2009-06-10 43 views
0

我试图在IronPython中使用SharpDevelop 3.1(IronPython 2.0.0)构建一个MSBuild自定义任务。IronPython中的MSBuild自定义任务/ SharpDevelop 3.1

为了构建自定义任务,该类需要实现Microsoft.Build.Framework.ITask接口。根据this post,您可以通过继承它来实现.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尝试创建一个使用“UsingTask”元素来引用生成的dll的MSBuild文件时,它会抱怨dll不包含任何任务。

我猜这个问题要么是由于我的部分不完善的接口实现(最有可能的属性,因为我假装他们的属性)或版本问题(IronPython 2.0与2.1后)。任何经验或建议要提供?

+0

经过进一步阅读,我确定通过继承Microsoft.Build.Utilities.Task类来制作自定义任务更容易。这允许您只覆盖Execute方法而不用担心属性。但是,仍然没有骰子与生成的DLL。 MSBuild Sidekick告诉我它没有任何任务。 – 2009-06-11 17:18:45

回答

0

我希望你没有公开这个课程。

相关问题