Компания Микрософт разработала программу для автоматизации упорядоченной сборки зависимых друг от друга артефактов, она называется MSBuild. Для того, чтобы эта утилита начала что-то собирать, для собираемого проекта пишут декларативное описание, в котором перечислены собираемые артефакты (MSBuild Item-ы) и инструкции по сборке (MSBuild Task-и).
Описание проекта для языка C# хранится в файлах с расширением .csproj и используется не только утилитой MSBuild, но и различными IDE, такими как MonoDevelop и Visual Studio.
Документация на программу MSBuild не покрывает особенностей использования файлов описания в этих IDE.
Здесь мы видим группу MSBuild Item, с именем "Compile" и дополнительными атрибутами AutoGen, DesignTime, DependentUpon.
Эти атрибуты упомянуты в файле Microsoft.Build.Commontypes.xsd, но без комментариев.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Собственно, научите меня, пожалуйста, как искать в MSDN. Ввожу How DesignTime attribute of MSBuild Item is used?, но подходящих результатов не вижу.
Никак.
То, что вы перечислили (AutoGen, DesignTime, DependentUpon) в терминологии MSBuild называется метаданными. Это дополнительная информация, которая никак не станадртизуется, причем т.к. MSBuild-файлы использует не только MSBuild, но и самой Visual Studio, эти метаданные могут быть нужны только самой IDE.
Всё, что вы можете это посмотреть какие Task используют на входе коллекцию Compile и по их коду попробовать определить, для чего этот элемент метаданных может использоваться.
ЭФ>> Документация на программу MSBuild не покрывает особенностей использования файлов описания в этих IDE. МР> То, что вы перечислили (AutoGen, DesignTime, DependentUpon) в терминологии MSBuild называется метаданными. МР> Это дополнительная информация, которая никак не станадртизуется, причем т.к. MSBuild-файлы использует не только MSBuild, но и самой Visual Studio, МР> эти метаданные могут быть нужны только самой IDE.
Да, большое спасибо, что подтвердили то, что уже написано в моём сообщении.
МР> посмотреть какие Task используют на входе коллекцию Compile и по их коду попробовать определить
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Теперь мне хотелось бы повторить вопрос — где описано, как используется (должен использоваться) атрибут DesignTime в IDE ?
Думаю, что нигде.
Внутренние механизмы VS описываются только в части разработки собственных расширений. И если в MS не предполагали открывать данный мехнизм наружу, то нигде он описан и не будет (хотя то, что его включили в XSD схему говорит, что скорее всего это частый элемент).
А вообще какой смысл именно в таком подходе — досконально изучать каждый из представленных элементов? Обычно идут от задачи: описывают что надо, а потом смотрят какие есть для этого инструменты?
Или вы хотите сделать редактор MSBuild файлов?
Re[4]: Как используется атрибут DesignTime у MSBuild Item ?
МР> А вообще какой смысл именно в таком подходе — досконально изучать каждый из представленных элементов?
Мне в руки попал код, оставленный ушельцами.
Там применяется инопланетянская логика (я бы делал не так).
Есть идея переделать по-другому, но при переделке животные не должны пострадать.
Поэтому нужно понимать, что я теряю внося изменения (замещая код другим).
Re[5]: Как используется атрибут DesignTime у MSBuild Item ?
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Поэтому нужно понимать, что я теряю внося изменения (замещая код другим).
Ясно.
Боюсь, что тогда у вас остается только путь поиска в сети (но я с ходу особо ничего не нашел) или анализа поведения студии при замене этих атрибутов.
Ну в тасках MSBuild посмотреть тоже стоит.