Не может заставить T4MVC работать с VS2010 и ASP.NET MVC 2

Я пытаюсь добавить шаблоны T4MVC к своему проекту, но я испытываю некоторые проблемы. Я перешел к Codeplex и загрузил последнюю версию T4MVC, и согласно инструкциям я просто скопировал эти два файла T4MVC.tt и T4MVC.Settings.t4 в корень моего веб-приложения.

Сразу, я получил следующие ошибки:

От T4MVC.cs (сгенерированный файл):

Пространство имен не может непосредственно содержать участников, таких как поля или методы

От T4MVC.tt (генерирующийся шаблон кода):

Компиляция преобразования: тип или 'ITextTemplatingEngineHost' имени пространства имен не могли быть найдены (Вы пропускаете директиву использования или ссылку на сборку?)

Когда я открываюсь T4MVC.cs, это только содержит одну строку:

ErrorGeneratingCode

Я нашел это сообщение, которое предлагает просто создать снова, но то решение не решает мою проблему - на самом деле, это не изменяет вещь.Что мне делать?

8
задан Community 23 May 2017 в 12:16
поделиться

2 ответа

OK, I figured it out. The problem was that apparently since the last release of the T4MVC package, Microsoft changed the location of the ITextTemplateHost interface, so I needed to import another namespace. Also, the .dll files with these namespaces aren't imported in the default ASP.NET MVC template project. This is what I did to make it work:

  1. Add references to the following .dll files (search paths on my machine in brackets):

    • Microsoft.VisualStudio.TextTemplating.10.0.dll (C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.TextTemplating.10.0\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.10.0.dll)

    • Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll (C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.TextTemplating.Interfaces.10.0\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll)

  2. Make sure the following namespaces are both imported in T4MVC.tt (just follow the syntax that's already in the file).

    • Microsoft.VisualStudio.TextTemplating

    • Microsoft.VisualStudio.TextTemplating.Interfaces

  3. Delete all generated code files (they'll appear if you expand the T4MVC.tt in Solution Explorer).

  4. Build project. If no files are generated, open T4MVC.tt, edit something, don't save and build. That should do it!

18
ответ дан 5 December 2019 в 07:11
поделиться

Кажется, у вас все заработало, но позвольте мне добавить сюда несколько моментов.

О необходимости импорта Microsoft .VisualStudio.TextTemplating.Interfaces, я добавил комментарий об этом в верхней части T4MVC.tt. Но да, это легко упустить.

Теперь о запутанной части: хотя эти интерфейсы действительно переместились в другое пространство имен в Beta2, команда T4 изменила свое мнение и решила снова переместить их обратно в исходное пространство имен, чтобы избежать спутанность сознания. Поэтому, когда выйдет следующая сборка RC, это пространство имен исчезнет.

Что касается необходимости импортировать библиотеки DLL, я удивлен, что вам это нужно, поскольку у меня это работает и без него.

Заключительное примечание: в шаге # 4, это должно быть безвредно, если вы сохраните здесь. Что происходит, так это то, что у T4MVC есть логика, которая остается грязной, поэтому, даже если вы сохраните, вы

2
ответ дан 5 December 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: