Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架的T4代码生成器-未能解析EF.Utility.CS.tInclude的包含文本_Entity Framework_Msbuild_Wcf Ria Services_T4_Ef Database First - Fatal编程技术网

Entity framework 实体框架的T4代码生成器-未能解析EF.Utility.CS.tInclude的包含文本

Entity framework 实体框架的T4代码生成器-未能解析EF.Utility.CS.tInclude的包含文本,entity-framework,msbuild,wcf-ria-services,t4,ef-database-first,Entity Framework,Msbuild,Wcf Ria Services,T4,Ef Database First,我正在尝试使用OpenRIA服务自动化Silverlight 5应用程序的CI服务器的构建过程 我有一个database first Entity Framework.edmx生成的文件,从中生成DomainModel,作为构建的一部分,我希望通过T4代码生成器生成实体 项目设置 我的服务器.csproj已更改 进口 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="

我正在尝试使用OpenRIA服务自动化Silverlight 5应用程序的CI服务器的构建过程

我有一个database first 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"/>
可疑的 所有
.tt
文件都有T4导入

<#@ include file="EF.Utility.CS.ttinclude"#> 

我怀疑它的目标是本地目录,甚至不是构建目录

我很好奇为什么
Microsoft.textmplating.targets
变量的目标是
EF.Utility.CS.ttinclude
中的
{path to my project}
而不是
C:\Program Files(x86)\Microsoft visualstudio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\include
加载include文件“EF.Utility.CS.ttinclude”返回一个null或空字符串
根据此路径似乎是合法的

也许我错过了一些设置、导入或路径设置? 如何更改或更新此实用程序的路径


已检查相关问答:

  • -安装/重新安装用于VS的Entity Framework 6工具不起作用
  • -不是这个问题,我的项目正在按正确的顺序进行
  • -(对于其他人)这也是一个问题,如果您正在处理T4自动化构建,它可能是有用的

问题可以通过向T4文件中的
EF.Utility.CS.ttinclude
添加绝对或相对路径来解决。对于build server,最好的解决方案可能是将路径
C:\Program files(x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\中通常可以找到的文件复制到项目中,然后更改行:

<#@ include file="EF.Utility.CS.ttinclude"#>

例如:

<#@ include file="..\..\EF.Utility.CS.ttinclude"#>


出于某种原因,当从MSBuild运行模板转换时,它会在
.tt
文件所在的位置查找
.tt
文件。

我发现可以将包含文件保留为

<#@ include file="EF.Utility.CS.ttinclude"#>

通过将以下内容添加到我的配置中

  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
  <connectionStrings>


您是否尝试过此操作或安装了Microsoft Web Developer Tools和Microsoft SQL Server Data Tools?安装Microsoft Web Developer Tools和Microsoft SQL Server Data Tools没有帮助。关于这个问题,事实并非如此。事件问题中描述的解决方法在所有情况下都不起作用。也许可以在“我不再参与项目”和这些问题中设置完整路径,因此我很难验证-您能否确认它在从MS Build手动运行时是否生成实体?但是。。。为什么?为什么默认的VS安装本身生成的文件有问题?…我不确定这些文件是由VS生成的,但根据我记忆中的情况,问题只发生在MSBuild中,在VS中才起作用。
<#@ include file="EF.Utility.CS.ttinclude"#>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
  <connectionStrings>