Задача MSBuild XmlMassUpdate в NAnt?

Я создал задачи MSBuild для сборки своих проектов, но по разным причинам не хочу переходить на NAnt.

Есть ли какая-то задача, которая была бы эквивалентна XmlMassUpdate MSBuild в NAnt? Если возможно, я хотел бы использовать тот же файл замены xml, который я использовал с XmlMassUpdate.

(для получения дополнительной информации о XmlMassUpdate, вот краткое использование, которое я нашел на сайте stackoverflow: пример MSBuild)

Я пробовал с задачами xmlPeek / xmlPoke, но не смог заставить их перебирать пути дерева в файле замены ...


person veljkoz    schedule 19.03.2010    source источник


Ответы (2)


Оказалось, что мне просто нужно переделать код из реализации tigris в тот, который подойдет для NAnt.

Решение немного длинное, поэтому нет смысла публиковать его здесь целиком, но это были бы шаги ...

На сайте Tigris MsBuildTasks есть как двоичные файлы, так и исходный код для каждой задачи.

Просто найдите реализацию 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, и вы можете ее использовать ... наслаждайтесь

person veljkoz    schedule 25.03.2010

Вы можете раскрыть свойства в файле, скопировав его в Nant. Вместо того, чтобы писать разные обновления для каждого свойства, вы можете создать файл шаблона с вашими nant vars внутри него. ...

        <fileset basedir="${config.dir}\NantTemplates">
            <include name="**\*" />
            <exclude name="*.template"/>                
        </fileset>
        <filterchain>
            <expandproperties/>
        </filterchain>

person James Woolfenden    schedule 10.02.2011