SubSonic 3 автоматически обновляет класс ActiveRecord?

У меня есть база данных SQLite и SubSonic3, и я наконец понял, как сгенерировать .cs из .tt в Visual Studio. Сейчас мои вещи строятся.

Я могу запустить MSBuild автоматически, чтобы собрать свой проект, но я хотел бы добавить событие перед сборкой, чтобы аккуратно восстановить ActiveRecord.cs, чтобы любые изменения базы данных оставались там для будущих модульных тестов.

Как я могу смоделировать «запуск внешнего инструмента» в графическом интерфейсе Visual Studio?

Спасибо.


person Snowy    schedule 17.07.2009    source источник


Ответы (3)


Инструмент TextTemplating можно запустить из командной строки:

C:\Program Files\Common Files\Microsoft Shared\TextTemplating\1.2\TextTransform.exe "path/to/your/ttfile.tt" -out <outFileName>

Используйте TextTransform.exe /help для дополнительных аргументов командной строки, которые вы можете использовать.

person womp    schedule 17.07.2009
comment
SubSonic требует, чтобы вы запускали его шаблоны t4 из visualstudio, поэтому вы не можете успешно запустить их из командной строки. - person Adam Cooper; 17.07.2009
comment
Я не понимаю, зачем SubSonic это требуется. Я нашел эту ссылку, но не уверен, что она применима. geekswithblogs.net/ ЭлтонСтоунман / архив / 25.07.2008 / - person Snowy; 24.07.2009

В настоящее время файл SubSonic Settings.ttinclude должен запускаться из приложения VisualStudio и не может быть запущен из командной строки. Это связано с тем, что Settings.ttinclude использует контекст проекта для поиска файла App.config / Web.config, чтобы он мог найти строку подключения.

Попытка запустить через командную строку с помощью TextTransform.exe приведет к ошибке:

ошибка: выполняется преобразование: System.InvalidCastException: невозможно преобразовать объект типа «Microsoft.VisualStudio.TextTemplating.CommandLine.CommandLineHost» к типу «System.IServiceProvider».

Это связано с этим методом в Settings.ttinclude:

public EnvDTE.Project GetCurrentProject()  {
    IServiceProvider _ServiceProvider = (IServiceProvider)Host;
    ...
}
person CodingWithSpike    schedule 11.01.2010

Взломав файл Settings.ttinclude, вы можете настроить Subsonic для запуска из командной строки.

Просто измените его, чтобы установить строку подключения в качестве возвращаемого значения GetConnectionString и исключить всю остальную логику.

person James    schedule 13.10.2010