Создайте пользовательскую задачу MSBuild для изменения кода C # * перед * компиляцией

StackOverflow https://stackoverflow.com/questions/153602

Вопрос

Я хочу создать пользовательскую задачу MSBuild, которая изменяет мои файлы .cs до того, как они будут скомпилированы csc.exe (но, конечно, это не изменяет их на месте - я не хочу, чтобы затрагивались фактические исходные файлы).Я знаю о PostSharp и других фреймворках AOP для .NET и они не подходят для данного конкретного проекта, плюс я хотел бы узнать, как это сделать.

Что именно я должен сделать, чтобы это сработало?

Спасибо Ричард

Это было полезно?

Решение

Учитывая ваши ограничения, я думаю, вы можете сделать следующее:

  1. Создайте пользовательскую задачу, которая принимает список cs-файлов для адаптации перед компиляцией
  2. Пользовательская задача адаптирует список полученных файлов и создает их на диске
  3. Пользовательская задача устанавливает список измененных файлов в выходном параметре
  4. Выходные данные задачи заменят исходный список файлов cs
  5. Компиляция выполняется по измененным файлам.

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

Вы будете в значительной степени полагаться на ИТаскИтем интерфейс для выполнения задания.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top