MSBuild';s XmlMassUpdate任务在NAnt中?
我已经创建了一个MSBuild任务来构建我的项目,但由于各种原因,我不想切换到NAnt 在NAnt中是否存在与MSBuild的XmlMassUpdate等效的任务?如果可能,我希望使用与XmlMassUpdate相同的xml替换文件 (有关XmlMassUpdate的更多信息,请参阅我在stackoverflow网站上找到的一个简短用法:)MSBuild';s XmlMassUpdate任务在NAnt中?,msbuild,nant,msbuild-task,nant-task,Msbuild,Nant,Msbuild Task,Nant Task,我已经创建了一个MSBuild任务来构建我的项目,但由于各种原因,我不想切换到NAnt 在NAnt中是否存在与MSBuild的XmlMassUpdate等效的任务?如果可能,我希望使用与XmlMassUpdate相同的xml替换文件 (有关XmlMassUpdate的更多信息,请参阅我在stackoverflow网站上找到的一个简短用法:) 我尝试使用xmlPeek/xmlPoke任务,但无法让它们在替换文件中迭代树路径…结果证明,我只需要将代码从tigris的实现调整为适用于NAnt的实现 这
我尝试使用xmlPeek/xmlPoke任务,但无法让它们在替换文件中迭代树路径…结果证明,我只需要将代码从tigris的实现调整为适用于NAnt的实现 这个解决方案有点长,所以把它全部贴在这里是没有意义的,但以下是步骤 每个任务都有二进制文件和源代码 只需找到XmlMassUpdate的实现,看看它是如何完成的,然后在任务库中创建NAnt任务类,如下所示:
[TaskName("XmlMassUpdate")]
public class XmlMassUpdate : Task
{
[TaskAttribute("ContentFile", Required=true)]
public string ContentFile { get; set; }
//...
protected override void ExecuteTask()
{
// ...
}
//other methods
}
剩下的就是将你的库dll复制到nant的bin中,你可以使用它。。。享受在Nant中复制文件时,可以展开文件中的属性。 不必为每个属性编写不同的更新,您可以创建一个包含nant变量的模板文件。 ...
<fileset basedir="${config.dir}\NantTemplates">
<include name="**\*" />
<exclude name="*.template"/>
</fileset>
<filterchain>
<expandproperties/>
</filterchain>