Запустить код веб-приложения из командной строки? - PullRequest
0 голосов
/ 23 февраля 2009

У меня есть веб-приложение ASP.NET, которое включает в себя код для обеспечения собственной схемы базы данных; этот код запускается при запуске приложения.

Я недавно начал использовать LINQ to SQL и добавил событие предварительной сборки для запуска SqlMetal в моей базе данных, чтобы я получил объекты, представляющие мои таблицы базы данных.

Что было бы действительно здорово, если бы я мог применить схему базы данных в событии перед сборкой, а затем запустить SqlMetal. Таким образом, если схема меняется (например, я добавляю поле в таблицу), мне нужно (а) создать и запустить веб-сайт один раз, чтобы запуск приложения запускался, и схема применялась, а затем (б) построить его снова так что SqlMetal работает.

Итак: каковы мои варианты запуска кода, который находится в моем веб-приложении, из командной строки?

Ответы [ 2 ]

1 голос
/ 23 февраля 2009

Вот что мы делаем.

У нас есть локальная сборка в один клик, которую необходимо запустить до регистрации (интеграционная сборка также выполняется в отдельной среде при каждой регистрации ...).

Сценарий NANT:

  1. Восстановление базы данных с нуля с использованием Tarantino (Управление изменениями базы данных)
    • Очистить и скомпилировать
    • Копирование DLL в отдельный каталог
    • Запуск модульных тестов для библиотек DLL

У нас есть отдельный скрипт для SQL Metal, но ваш вопрос заставит меня взглянуть на вставку вызова между шагами 1 и 2. Таким образом, изменения в вашей базе данных и сгенерированные linq файлы всегда синхронизируются.

0 голосов
/ 23 февраля 2009

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

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

...