mic*_*ukm 6 msbuild t4 entity-framework wcf-ria-services ef-database-first
我正在尝试使用OpenRIA Services自动化Silverlight 5应用程序的CI服务器的构建过程.
我有数据库优先的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"/>
Run Code Online (Sandbox Code Playgroud)
和属性
<PropertyGroup>
<TransformOnBuild>true</TransformOnBuild>
...
<PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
已安装的sdk和工具:
看起来不错,但在构建时出现了这样的错误
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
Run Code Online (Sandbox Code Playgroud)
所有.tt文件都有T4导入
<#@ include file="EF.Utility.CS.ttinclude"#>
Run Code Online (Sandbox Code Playgroud)
我怀疑它是针对本地目录,甚至不是构建目录.
我很好奇,为什么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根据这条道路似乎是合法的.
也许我错过了一些设置,导入或路径设置?我如何更改或更新此实用程序的路径?
相关问答已经检查过:
EF.Utility.CS.ttinclude可以通过在 T4 文件中添加绝对或相对路径来解决问题。对于构建服务器,最好的解决方案可能是复制通常可以在C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes项目路径中找到的文件,然后更改行:
<#@ include file="EF.Utility.CS.ttinclude"#>
Run Code Online (Sandbox Code Playgroud)
例如:
<#@ include file="..\..\EF.Utility.CS.ttinclude"#>
Run Code Online (Sandbox Code Playgroud)
由于某种原因,当从 MSBuild 运行模板转换时,它会.ttinclude在与该文件相同的位置查找文件.tt。
| 归档时间: |
|
| 查看次数: |
6055 次 |
| 最近记录: |