Общая задача такова, на этапе компиляции генерируется несколько файликов, которые должны быть внедрены в итоговую сборку.
Вопрос такой. Можно ли из макроса каким-то образом добавить к проекту файлы на этапе компиляции? Я пока вижу вариант тупой вставки в xml проекта.
Re: Добавление файлов к проекту на этапе компиляции
Здравствуйте, evilbeaver, Вы писали:
E>Общая задача такова, на этапе компиляции генерируется несколько файликов, которые должны быть внедрены в итоговую сборку. E>Вопрос такой. Можно ли из макроса каким-то образом добавить к проекту файлы на этапе компиляции?
Нет.
E>Я пока вижу вариант тупой вставки в xml проекта.
Это тоже не поможет. Файл проекта не перечитывается во время компиляции. Данные изменения будут доступны только при повторной компиляции. При этом студия будет выдавать запрос на переоткрытие проекта.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Добавление файлов к проекту на этапе компиляции
Здравствуйте, evilbeaver, Вы писали:
E>Общая задача такова, на этапе компиляции генерируется несколько файликов, которые должны быть внедрены в итоговую сборку. E>Вопрос такой. Можно ли из макроса каким-то образом добавить к проекту файлы на этапе компиляции? Я пока вижу вариант тупой вставки в xml проекта.
А что за файлы? И зачем их в проект добавлять?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Добавление файлов к проекту на этапе компиляции
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, evilbeaver, Вы писали:
E>>Общая задача такова, на этапе компиляции генерируется несколько файликов, которые должны быть внедрены в итоговую сборку. E>>Вопрос такой. Можно ли из макроса каким-то образом добавить к проекту файлы на этапе компиляции? Я пока вижу вариант тупой вставки в xml проекта.
VD>А что за файлы? И зачем их в проект добавлять?
маппинги nhibernate. Тогда вопрос такой. Не добавляя их в проект можно ли внедрить их как ресурсы в сборку?
Re[3]: Добавление файлов к проекту на этапе компиляции
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, VladD2, Вы писали:
VD>>Но почему не добавить их явно в список ресурсов?
H>А они видимо макросом хитровывернуто изготавливаются.
Вы угадали
Re[4]: Добавление файлов к проекту на этапе компиляции
E>Спасибо за наводку, попробую так сделать. Правильно ли я понял, что здесь в качестве имени файла указывается путь относительно самого файла проекта?
Нет. Здесь лучше иметь полный путь. Иначе он скорее всего будет рассматириваться относительно текущего каталога компилятора (а это может быть любой каталог).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Добавление файлов к проекту на этапе компиляции
VD>Кстати, в режиме интеграции макросы могут запускаться много раз, так что нужно проверять нел ли в списке такого файл.
Лучше наверно проверять запускаемся ли мы в режиме интеграции — typer.Manager.IsIntelliSenseMode. Если да — то в список ничего не добавлять, так как всеравно сборка не генерируется.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[6]: Добавление файлов к проекту на этапе компиляции
Здравствуйте, evilbeaver, Вы писали:
H>>А они видимо макросом хитровывернуто изготавливаются.
E>Вы угадали
Может быть имеет смысл посмотреть на маппинги через атрибуты? Я так делаю для тулкита.
А не хотите ли сделать nhibernate провайдер для NRails? Достаточно сделать все пару несложных макров по примеру. Его не обязательно использовать в веб проектах.
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>
Re[7]: Добавление файлов к проекту на этапе компиляции
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, evilbeaver, Вы писали:
H>>>А они видимо макросом хитровывернуто изготавливаются.
E>>Вы угадали
Z>Может быть имеет смысл посмотреть на маппинги через атрибуты? Я так делаю для тулкита.
Через атрибуты данный подход насколько мне известно уже реализован. Но поскольку атрибуты обрабатываются рантайм, то на этапе компиляции у нас все будет отлично. Я же планирую о большинстве ошибок в описании сообщать еще при компиляции.
Z>А не хотите ли сделать nhibernate провайдер для NRails? Достаточно сделать все пару несложных макров по примеру. Его не обязательно использовать в веб проектах.
К сожалению сейчас не так много времени, закончу со своей задачей — постараюсь посмотреть.
Re[8]: Добавление файлов к проекту на этапе компиляции
Здравствуйте, evilbeaver, Вы писали:
E>Через атрибуты данный подход насколько мне известно уже реализован. Но поскольку атрибуты обрабатываются рантайм, то на этапе компиляции у нас все будет отлично. Я же планирую о большинстве ошибок в описании сообщать еще при компиляции.
Есть же мета-атрибуты. Они как обычные, но вызывают макросы, так что все что нужно можно сделать во время компиляции.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Добавление файлов к проекту на этапе компиляции
Здравствуйте, evilbeaver, Вы писали:
E>Через атрибуты данный подход насколько мне известно уже реализован. Но поскольку атрибуты обрабатываются рантайм, то на этапе компиляции у нас все будет отлично. Я же планирую о большинстве ошибок в описании сообщать еще при компиляции.
Я про то, что маппинг можно создать в компайл тайме кучей способов. Генерация xml лишь один из них. Можно еще конструировать код создающий метаинформацию вручную, навешивать атрибуты. При этом совершат все те же проверки, что и при генерации xml файлов.
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>
Re[9]: Добавление файлов к проекту на этапе компиляции
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, evilbeaver, Вы писали:
E>>Через атрибуты данный подход насколько мне известно уже реализован. Но поскольку атрибуты обрабатываются рантайм, то на этапе компиляции у нас все будет отлично. Я же планирую о большинстве ошибок в описании сообщать еще при компиляции.
VD>Есть же мета-атрибуты. Они как обычные, но вызывают макросы, так что все что нужно можно сделать во время компиляции.
Метаатрибуты я собственно и использую. То есть классы (и поля) помечаются атрибутами, которые на самом деле макросы.