Как сохранить исходный код содержимого пакета Nuget?

Я занимаюсь настройкой целой серии пакетов NuGet для нашей платформы. Помимо простых бинарных пакетов (.dll для модулей фреймворка) существуют также пакеты, которые доставляют исходный код в проекты, которые их используют, сделанные с помощью каталога \content в пакете NuGet.

Для разработки этого исходного кода у меня есть тестовый проект/песочница. Я разрабатываю/отлаживаю/исправляю код в этом проекте, и если он окончательный для следующего выпуска, я копирую его в папку содержимого пакета, где я заменяю такие вещи, как $rootnamespace$ и т. д. Это необходимо делать для каждой версии. пакета.

Другой способ — сохранить только окончательный исходный код с тегами $rootnamespace$ и поддерживать его напрямую. Но тогда тестирование/отладка будет выполняться путем повторного добавления пакета в тестовый проект и отладки его там, перехода к содержимому пакета, его изменения, повторной сборки и повторного добавления и повторного тестирования.

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

  • Держите исходный код в \content как можно меньше и как можно больше развертывайте в виде двоичных файлов.

  • Сгенерируйте \content, используя какой-нибудь движок преобразования (например, T4) из песочницы/dev-проекта. Какой двигатель для этого лучше использовать?

Вкратце: я еще не нашел хорошего рабочего процесса для поддержки исходного кода «контента» пакетов NuGet. Как вы это делаете? Любые идеи для этого рабочего процесса?


person Marc    schedule 04.02.2014    source источник


Ответы (1)


Проверьте сборку http://github.com/maartenba/MvcSiteMapProvider. Он немного настраивается, но в основном выполняет поиск/замену в нескольких пространствах имен и заменяет их заменяющими токенами прямо перед упаковкой.

person maartenba    schedule 04.02.2014
comment
Спасибо за отзыв. Если я правильно понял, вы пересобираете свой исходный код \content на основе своего кода разработки каждый раз, когда пакет упаковывается, и автоматически вставляете токены замены? - person Marc; 04.02.2014
comment
Это правильно. Это позволяет легко тестировать его в проекте, а поиск/замена облегчает создание пакета. Не нашел более чистого способа сделать это... - person maartenba; 04.02.2014