Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSBuild';s XmlMassUpdate任务在NAnt中?_Msbuild_Nant_Msbuild Task_Nant Task - Fatal编程技术网

MSBuild';s XmlMassUpdate任务在NAnt中?

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的实现 这

我已经创建了一个MSBuild任务来构建我的项目,但由于各种原因,我不想切换到NAnt

在NAnt中是否存在与MSBuild的XmlMassUpdate等效的任务?如果可能,我希望使用与XmlMassUpdate相同的xml替换文件

(有关XmlMassUpdate的更多信息,请参阅我在stackoverflow网站上找到的一个简短用法:)


我尝试使用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>