【发布时间】:2015-06-30 09:27:29
【问题描述】:
我正在尝试使用 OpenRIA 服务自动化 Silverlight 5 应用程序的 CI 服务器的构建过程。
我有数据库优先的实体框架 .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 和工具:
- Microsoft Visual Studio 2013 SDK
- Microsoft Visual Studio 2013 Visualization & Modeling SDK
- Entity Framework 6 Tools for 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 变量在{path to my project} 中针对EF.Utility.CS.ttinclude 而不是在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 似乎是合法的。
也许我错过了一些设置、导入或路径设置? 如何更改或更新此实用程序的路径?
已检查相关问答:
- Transforming T4 Templates On Build by Nico Ploner
- How can I resolve this error: Loading the include file 'EF.Utility.CS.ttinclude' returned a null or empty string - 为 VS 安装/重新安装 Entity Framework 6 Tool 无效
- Silverlight 4, RIA Services & TFS 2010 Build Server - 不是这个问题,我的项目正在按正确的顺序构建
- TFS Hosted Build Controller - Microsoft.TextTemplating.targets not found -(对于其他人)这也是一个问题,如果您正在处理 T4 自动化构建,它可能会很有用
【问题讨论】:
-
您是否尝试过stackoverflow.com/a/8210150/615522 或安装 Microsoft Web Developer Tools 和 Microsoft SQL Server Data Tools?
-
安装 Microsoft Web Developer Tools 和 Microsoft SQL Server Data Tools 没有帮助。关于这个问题 - 事实并非如此。事件中描述的解决方法并非在所有情况下都有效。
-
也许可以在 中设置完整路径
标签: entity-framework msbuild wcf-ria-services t4 ef-database-first