Ответ 1
Резюме:
Чтобы решить эту проблему, просто добавьте следующее в начало шаблона T4:
<#@ assembly name="System.Runtime" #>
Длинный ответ:
Шаблоны T4 представляют собой концепцию времени компиляции и, следовательно, работают в контексте и структуре стека сборки (например,.NET Framework 4.5), а не в контексте проекта-хозяина, поэтому изменение проекта Store для добавления ссылки к System.Runtime не поможет.
Вместо этого вы должны сказать T4 о ссылке через сам шаблон. Обычно это обрабатывается автоматически для инструментов, которые используют MSBuild, однако T4 в основном обращается к компиляторам напрямую и, следовательно, ему необходимо вручную сообщать о каждой переносной ссылочной сборке.
Когда вы начнете писать реальный код в переносной библиотеке, вы быстро обнаружите, что вам нужно добавить гораздо больше ссылок; в основном, каждая сборка в разделе% PROGRAMFILES (x86)%\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades. Если вы сделаете это во множестве шаблонов, я бы рекомендовал создать один include template, содержащий директиву сборки для каждого файла в указанной выше папке.