IronPython/SharpDevelop 3.1中的MSBuild自定义任务
我正在尝试使用SharpDevelop 3.1 IronPython 2.0.0在IronPython中构建MSBuild自定义任务 为了生成自定义任务,该类需要实现Microsoft.build.Framework.ITask接口。根据,您可以通过继承来实现.NET接口 ITask接口定义了两个属性,BuildEngine和HostObject,以及一个Execute方法。execute方法不接受任何参数并返回布尔值 我已经在解决方案中使用适当的引用编写了以下代码:IronPython/SharpDevelop 3.1中的MSBuild自定义任务,msbuild,ironpython,Msbuild,Ironpython,我正在尝试使用SharpDevelop 3.1 IronPython 2.0.0在IronPython中构建MSBuild自定义任务 为了生成自定义任务,该类需要实现Microsoft.build.Framework.ITask接口。根据,您可以通过继承来实现.NET接口 ITask接口定义了两个属性,BuildEngine和HostObject,以及一个Execute方法。execute方法不接受任何参数并返回布尔值 我已经在解决方案中使用适当的引用编写了以下代码: import Micros
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不包含任何任务
我猜问题要么是我的接口实现不完整,最有可能是属性,因为我用属性来伪装它们,要么是Python2.0与2.1版本的问题。有什么经验或建议吗?进一步阅读后,我决定通过继承Microsoft.Build.Utilities.task类来创建自定义任务更容易。这允许您只重写Execute方法,而不必担心属性。但是,仍然无法使用生成的DLL。MSBuild Sidekick告诉我其中没有任务。嗨,为什么不通过reflector运行DLL,看看里面有什么。