我已经创建了一个用于构建项目的MSBuild任务,但出于各种原因,我不想切换到NAnt。
是否有一些任务与NAnt中的MSBuild的XmlMassUpdate等效?如果可能的话,我想使用与XmlMassUpdate一样的xml替换文件。
(有关XmlMassUpdate的更多信息,这是我在stackoverflow网站上找到的一个简短用法:MSBuild example)
我尝试使用xmlPeek / xmlPoke任务但无法让它们迭代替换文件中的树路径...
答案 0 :(得分:0)
事实证明,我只需要将tigris实现中的代码调整为适用于NAnt的代码。
解决方案有点长,所以将它全部发布在这里是没有意义的,但这些都是步骤......
Tigris MsBuildTasks site包含每个任务的二进制文件和源代码。
只需找到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中,你可以使用它...享受
答案 1 :(得分:0)
在Nant中复制文件时,可以展开文件中的属性。 您可以创建一个模板文件,而不必为每个属性编写不同的更新。 ...
<fileset basedir="${config.dir}\NantTemplates">
<include name="**\*" />
<exclude name="*.template"/>
</fileset>
<filterchain>
<expandproperties/>
</filterchain>