У меня была точно такая же проблема. Я следовал инструкциям в этой статье http://msdn.microsoft.com/en-us/library/ee789839.aspx о разделении шаблонов в другой проект и совместном использовании выходных файлов.
В нем подробно описано, как отключить инструмент TextTemplatingFileGenerator , присоединенный к шаблону, щелкнув правой кнопкой мыши шаблон и очистив свойство CustomTool . Это останавливает генерирование кода шаблона при сохранении ... но он все еще работает при переключении вкладок!
Я думаю, что единственный способ обойти это - переместить весь код вашего шаблона в новый файл с другим суффиксом (например, ttinclude или t4 или что-то в этом роде), а затем включить этот файл в ваш фактический файл шаблона T4, используя include директивы. Таким образом, вам никогда не потребуется открывать этот файл для редактирования шаблона, чтобы он не запустился случайно.
Так в одном файле с именем MyTemplate.tt:
<#@ template language="VB" debug="false" hostspecific="true"#>
<#@ include file="Include\MyTemplateCodeBehind.t4" #>
<#@ output extension=".vb"#>
<# ' Nothing to see here! #>
В то время как в другом файле с именем MyTemplateCodeBehind.t4:
<#@ template language="VB" debug="false" hostspecific="true"#>
<#
For Each something In somecollection
#>
<#= something.PrintMyCode() #>
<#
Next
#>