Я пытаюсь автоматизировать процесс сборки CI-сервера приложения Silverlight 5 с помощью служб OpenRIA.
У меня есть сгенерированный файл Entity Framework .edmx для базы данных, из которого генерируется DomainModel, и как часть сборки я хочу генерировать сущности с помощью генератора кода T4.
Настройки проекта
Мой сервер .csproj
меняется.
Импорт
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
# Microsoft.TextTemplating.targets are added after CSharp.targets
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v12.0\TextTemplating\Microsoft.TextTemplating.targets"/>
и свойства
<PropertyGroup>
<TransformOnBuild>true</TransformOnBuild>
...
<PropertyGroup>
Установлен SDK и инструменты:
- SDK Microsoft Visual Studio 2013
- SDK Microsoft Visual Studio 2013 для визуализации и моделирования
- Инструменты Entity Framework 6 для Visual Studio 2012 и 2013
Сломанная сборка
Выглядит правильно, но при сборке такая ошибка
5> Transforming template DomainModel\EntityConverters.tt...
5>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TextTemplating\Microsoft.TextTemplating.targets(396,5): error : Failed to resolve include text for file:C:\{path to my project}\DomainModel\EF.Utility.CS.ttinclude. Line=-1, Column=-1
5>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TextTemplating\Microsoft.TextTemplating.targets(396,5): error : Loading the include file 'EF.Utility.CS.ttinclude' returned a null or empty string. The transformation will not be run. . Line=21, Column=4
Подозрительный
Все файлы .tt
имеют импорт T4
<#@ include file="EF.Utility.CS.ttinclude"#>
У меня есть подозрение, что он нацелен на локальный каталог, а не на каталог сборки.
Мне любопытно, почему переменная Microsoft.TextTemplating.targets
нацелена на EF.Utility.CS.ttinclude
в {path to my project}
, а не в C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes
, где она есть на самом деле. Loading the include file 'EF.Utility.CS.ttinclude' returned a null or empty string
кажется законным в соответствии с этим путем.
Может быть, я пропустил какую-то настройку, импорт или набор путей? Как я могу изменить или обновить путь для этой утилиты?
Связанные вопросы и ответы уже проверены:
- Преобразование шаблонов T4 при сборке, Нико Плонер а>
- Как я могу решить эта ошибка: загрузка включаемого файла «EF.Utility.CS.ttinclude» вернула нулевую или пустую строку - установка/переустановка Entity Framework 6 Tool для VS не работала
- Silverlight 4, RIA Services и сервер сборки TFS 2010 - проблема не в этом, мои проекты строятся в правильном порядке
- Размещенный контроллер сборки TFS — Microsoft.TextTemplating.targets не найдено - (для других) это также было проблемой, если вы обрабатываете сборку автоматизации T4, это может быть полезно