c # Генерация кода c # перед компиляцией / сборкой (как плагин maven в Java) - PullRequest
2 голосов
/ 03 ноября 2011

У меня есть проект в c # .net.
Мне нужно подключить событие "pre build", чтобы я мог запустить класс ac #, который сгенерирует другой класс c # для того же проекта.
Я знаю, что вJava вы можете генерировать исходный код с помощью плагина Maven, это возможно в .net?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 03 ноября 2011

Попробуйте Tangible T4 Editor .Это плагин для Visual Studio, который предоставляет встроенную функциональность T4 Text Template , чтобы вы могли использовать его для автоматической генерации файлов C #.Он обеспечивает поддержку генерации кода C # во время компиляции в Visual Studio.

Я использовал это для преобразования XML-файла в 2600 строк C # во время компиляции.Теперь, если я изменю XML-файл и перекомпилирую, он автоматически восстановит правильный код C #.

Работает как по волшебству и совершенно без шва.

2 голосов
/ 03 ноября 2011

Есть как минимум два варианта:

  1. Использование T4
  2. Добавление шага предварительной сборки в файл сборки.

T4 - это встроенный способ генерации кода (широко используемый в скаффолдинге ASP.NET MVC и генерации типов Entity Framework). Однако T4 напрямую не поддерживает генерацию времени компиляции. Это делает либо время разработки - с разработчиком, инициирующим (пере) генерацию - или время выполнения; (сторонние инструменты могут добавить генерацию времени компиляции).

Пользовательская задача MSBuild (включая запуск внешней программы) может использоваться для создания кода, который затем включается в компиляцию. В простейших случаях можно использовать настройку проекта «pre-build» (вкладка «Build Events» свойств проекта). Непосредственная работа в MSBuild (а .csproj - это файл MSBuild) обеспечивает большую гибкость.

1 голос
/ 03 ноября 2011

Звучит так, как вы хотите Шаблоны T4 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...