Как использовать шаблоны генерации кода T4 в проектах VS C ++?

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

  •  20-08-2019
  •  | 
  •  

Вопрос

Файлы шаблонов T4 автоматически распознаются IDE в проектах C #, но я понятия не имею, как их можно интегрировать в проекты C ++ (кроме использования файлов make).

Есть какие-нибудь идеи?

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

Решение

Файлы шаблонов T4 могут быть интегрированы в проекты на C ++, но это требует немного больше работы, чем с проектом на C # / VB.Создайте новый текстовый файл в вашем проекте на C ++ и присвойте ему расширение .tt.Затем напишите свой шаблон как обычно.Затем проект на C ++ нуждается в дальнейшей работе, чтобы заставить его преобразовать шаблоны.Быстрый и грязный способ, которым я заставил это работать, состоял в том, чтобы добавить пользовательский шаг сборки и вызвать его напрямую "C:\Program Files\ Common Files\ Microsoft Shared extTemplating\1.1 extTransform.exe".Другой способ, который я нашел, состоял в том, чтобы добавить пользовательскую задачу MSBuild.Инструкции можно найти здесь

Это страница содержит больше информации и несколько хороших ссылок на другие страницы по использованию генерации кода T4.

Другие советы

Задача MSBuild не будет работать, так как это файл vcproj (C ++), поэтому используется vcbuild.Самый простой способ скомпилировать tt - это добавить пользовательский шаг сборки, как показано ниже..

"C:\Program Files (x86)\Common Files\Microsoft Shared\TextTemplating\1.1\TextTransform.exe" -out "$(ProjectDir)\VSProject.cpp" -I "$(ProjectDir)" "$(ProjectDir)\VSProject.tt"

Я потратил несколько часов на изучение решения задачи MSBuild, приведенного выше, и оно довольно хорошо подходит для управляемого кода, но я не вижу никакого способа использовать его для C ++ (панель преобразования vcproj в csproj eek)

Для Visual Studio 2017 (и, может быть, 2015?)

Команды, перечисленные в других ответах, частично неверны, так как файл TextTransform.exe был перемещен в новый каталог:в devenv корневая папка, например:

C:\Progra~1\Visual Studio 2017\Enterprise\Common7\IDE

Теперь команда должна быть обновлена до следующего:

"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)xxx.cpp" "$(ProjectDir)xxx.tt"

где xxx это имя файла yout .tt файл шаблона

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