Есть как минимум два варианта:
- Использование T4
- Добавление шага предварительной сборки в файл сборки.
T4 - это встроенный способ генерации кода (широко используемый в скаффолдинге ASP.NET MVC и генерации типов Entity Framework). Однако T4 напрямую не поддерживает генерацию времени компиляции. Это делает либо время разработки - с разработчиком, инициирующим (пере) генерацию - или время выполнения; (сторонние инструменты могут добавить генерацию времени компиляции).
Пользовательская задача MSBuild (включая запуск внешней программы) может использоваться для создания кода, который затем включается в компиляцию. В простейших случаях можно использовать настройку проекта «pre-build» (вкладка «Build Events» свойств проекта). Непосредственная работа в MSBuild (а .csproj
- это файл MSBuild) обеспечивает большую гибкость.