2016-08-05 4 views
0

Я использую Обновление Visual Studio 2015 3. Я попытался с помощью TextTransform.exe с йром флагом, но я получил эту ошибку:Ошибка создания T4 при сборке с использованием VS 2015

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF6.Utility.CS.ttinclude(1,4): error : A processor named 'T4VSHost' could not be found for the directive named 'CleanupBehavior'. The transformation will not be run. The following Exception was thrown: 
System.IO.FileNotFoundException: Failed to load directive processor T4VSHost. ---> System.IndexOutOfRangeException: L'index se trouve en dehors des limites du tableau. 
à Microsoft.VisualStudio.TextTemplating.CommandLine.DirectiveProcessorConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value) 
à Microsoft.VisualStudio.TextTemplating.CommandLine.CommandLineHost.ResolveDirectiveProcessor(String processorName) 
à Microsoft.VisualStudio.TextTemplating.CommandLine.CommandLineHost.ResolveDirectiveProcessor(String processorName) 
à Microsoft.VisualStudio.TextTemplating.Engine.ProcessCustomDirectives(ITextTemplatingEngineHost host, TemplateProcessingSession session, IEnumerable`1 directivesToBeProcessed) 

линия, создавшей ошибку:

texttransform -out "P:\<Path to project>\Model.cs" -I "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes" -dp T4VSHost"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Microsoft.Data.Entity.Design.dll" "P:\<Path to project>\Model.tt" 

Других вопросы, которые я поднял глаза:

То, что я знаю, до сих пор является то, что все пути правильны и что определение T4VSHost в моем реестре правильно.

Ограничения:

  • Я не могу изменить/переместить файлы .TT
  • Я не могу переместить сборочные файлы или файл ttinclude (хотя я пробовал)

Я бы очень хотел не следует изменять файл EF.CS.ttinclude. Что может быть причиной этой проблемы?

ответ

1

В коммутаторе dp отсутствует имя класса, оно должно иметь имя, полное имя типа и сборку директивного процессора.

Директивный синтаксис процессора:
-dp <processorName>! < классName >! < AssemblyName | CodeBase >

процессор Директива для CleanupBehavior:
-dp T4VSHost Microsoft.Data.Entity.Design.VisualStudio.Directives.FallbackT4VSHostProcessor "C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7! \ IDE \ Microsoft.Data.Entity.Design.dll "

+0

Большое спасибо! Я передал вопрос кому-то другому, но я попытаюсь посмотреть, не решит ли он его. – Kinou