我已经覆盖了控制器一代T4模板(ControllerWithContext.tt
)所描述的在这里.
我想利用EF.utility.CS.ttinclude
POCO模型生成器T4模板中使用的代码帮助程序实用程序.因此我将以下几行复制Model.tt
到我的ControllerWithContext.tt
.
<#@ include file="EF.Utility.CS.ttinclude"#>
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试添加控制器时,我收到错误消息
加载包含文件'EF.utility.CS.ttinclude'返回null或空字符串
根据MSDN文档,此错误是因为包含的文件是空白的,显然不是因为它可以使用Model.tt
我能看到的唯一区别是被覆盖的ControllerWithContext.tt
没有定义自定义工具,而Model.tt
它被设置为TextTemplatingFileGenerator
.
我的解决方法是将我需要的功能复制ef.utility.cs.ttinclude
到my中ControllerWithContext.tt
,这本身就会产生更多错误,但很容易解决.
如何在未定义自定义工具的情况下包含T4模板?
我正在尝试使用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 …
Run Code Online (Sandbox Code Playgroud) msbuild t4 entity-framework wcf-ria-services ef-database-first