Задача MSBuild XmlMassUpdate в NAnt? - PullRequest
1 голос
/ 19 марта 2010

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 10 февраля 2011

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

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

0 голосов
/ 26 марта 2010

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

...