Я использую шаблонную обработку T4 для генерации некоторых .config файлов в проекте, я продолжаю работать.
Я настроил задачу перед сборкой искать все .tt файлы в каталоге решения и затем выполнить инструмент командной строки TextTransform, так, чтобы код был недавно сгенерирован на каждой сборке.
Однако у меня теперь есть ошибки "Доступа запрещен", потому что (например), когда это пытается выполнить TextTransform в сети. Файл UAT.tt, сеть. Файл UAT.Config является объектом управления исходным кодом в TFS, и таким образом защищенный от записи.
Обычно я выбирал бы.Config файл в Visual Studio и делал бы Файл->, Управление исходным кодом-> Исключает Из вещи Управления исходным кодом. К сожалению, это не появляется как опция ни для какого файла, который обнаруживается, как "вложено" под другим файлом!
т.е. Я могу исключить web.tt, но не web.config... Я могу исключить default.aspx, но не default.aspx.cs.
У кого-либо есть какие-либо идеи о том, как я могу исключить вложенные файлы более низкого уровня из Управления исходным кодом, но сохранять высокоуровневые?
Спасибо!
Я предполагаю, что здесь вы используете TFS.
Вы не сможете сделать это идеально - так как Visual Studio автоматически добавляет любой новый элемент, добавленный в проект, в контроль исходного кода. Лучшим решением будет использование MSBuild и создание checkout для выходного файла перед запуском шаблона (но тогда вам, скорее всего, придется снова выполнить check-in после этого). Если быстро посмотреть, то есть http://msbuildextensionpack.codeplex.com/, который, как я видел, упоминается для этих целей.
Если это не удается, есть другой способ.
Проблема в том, что если кто-то другой загрузит проект в первый раз, его Visual Studio автоматически создаст выходной файл, если он запустит .TT - в этом случае ему придется либо повторить этот процесс (начиная с шага 2), либо вручную создать файл-заглушку .config с правильным именем (я бы предложил еще до загрузки проекта), чтобы проект увидел его и не пытался повторно контролировать исходный код.
Хорошо ... Я использовал адаптированную версию ответа Андраса Золтана.
По сути, я закончил следующим образом:
Теперь, когда вы строите, вы должны видеть вновь сгенерированные файлы в Решении, но без какой-либо проверки на входе или выходе.
У этого метода есть пара недостатков. Во-первых, вам нужно сделать это для каждого файла .tt в проекте и убедиться, что другие разработчики делают то же самое. Во-вторых, теперь вы можете только сгенерировать выходные файлы, выполнив сборку!
Я думаю, что в долгосрочной перспективе я, вероятно, воспользуюсь советом Андраса и напишу какой-нибудь сценарий MSBuild, чтобы либо проверять и проверять выходные файлы, либо, по крайней мере, удалять флаг «Только для чтения» с помощью
Спасибо!