找不到元数据文件 - Data.Entity.Model

时间:2013-10-29 17:10:43

标签: entity-framework visual-studio-2013 t4 ado.net-entity-data-model

在创建网络服务时有任何类似问题的人?

  

编译转换:元数据文件'D:\ Program   文件\ VS2013 \ Common7 \工具.. \ IDE \ Microsoft.Data.Entity.Design.dll”   找不到D:\ PROJEKTY \ apki \ ws2 \ WS \ WS \ DataModel.tt

error screenshot

我尝试再次添加数据模型,重新启动VS,清理和构建解决方案,创建新项目,删除和添加引用,安装最新版本。我认为在互联网上找到的任何解决方案对我都不起作用。

有什么建议吗?我想把文件粘贴到这个目录中,但不能想到可能存在的内容。

9 个答案:

答案 0 :(得分:26)

基于

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Entity Framework Tools \ Templates \ Includes \ EF6.Utility.CS.ttinclude

,代码生成器正在以下位置查找缺少的DLL:

<#@ assembly name="%VS120COMNTOOLS%..\IDE\EntityFramework.dll" #>
<#@ assembly name="%VS120COMNTOOLS%..\IDE\Microsoft.Data.Entity.Design.dll" #>

我发现环境变量%VS120COMNTOOLS%与visual studio的正确安装路径不兼容,因此我将其从高级系统属性更改为有效

答案 1 :(得分:6)

  1. 检查您的安装位置。我将VS安装到其他位置D:\而不是默认C:\,因此我收到了错误。
  2. 将“环境变量”修改为您的位置,对我而言,这意味着将C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\更改为D:\Microsoft Visual Studio 12.0\Common7\Tools\
  3. 请勿忘记在单词的末尾添加\

答案 2 :(得分:4)

我认为在将VS重新安装到其他驱动器时VS并未正确更新VS120COMNTOOLS变量。有关详细答案,请参阅this SO thread

答案 3 :(得分:1)

问题在于文件最初EF6.Utility.CS.ttinclude错误。即使变量%VS120COMNTOOLS%是正确的值,仍会出现错误。

归咎于以下几行中的两个愚蠢点(%VS120COMNTOOLS% .. \ IDE):

<#@ assembly name="%VS120COMNTOOLS%..\IDE\EntityFramework.dll" #>
<#@ assembly name="%VS120COMNTOOLS%..\IDE\Microsoft.Data.Entity.Design.dll" #>

如果这样,修复错误的方法就不再发生了:

<#@ assembly name="%VS120COMNTOOLS%\IDE\EntityFramework.dll" #>
<#@ assembly name="%VS120COMNTOOLS%\IDE\Microsoft.Data.Entity.Design.dll" #>

当然,变量%VS120COMNTOOLS%必须具有正确的值。

问题是陈旧的,但现在答案仍然相关,因为这个错误仍然存​​在,并且在VS2015中。来自命运多file的文件下面的行:

<#@ assembly name="%VS140COMNTOOLS%..\IDE\EntityFramework.dll" #>
<#@ assembly name="%VS140COMNTOOLS%..\IDE\Microsoft.Data.Entity.Design.dll" #>

对不起。

答案 4 :(得分:1)

不确定为什么会这样。当我试图在我们正在使用的公共服务器中从Model生成数据库时,我的一位同事遇到了这个问题。我在同一台机器上尝试从我的PC登录,它第一次工作,我再次尝试,我得到了同样的错误。我刚做了一个

devenv /resetsetting

在VS 2013命令提示符下,它工作正常。在我的同事机器中也是如此,它也起作用了。不确定它会起作用但是试一试

答案 5 :(得分:0)

这对我有用。

  1. 转到C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF6.Utility.CS.ttinclude

  2. 使用Visual Studio编辑它。

  3. 删除URL后面的两个点,所以新行如:

    <#@ assembly name="%VS120COMNTOOLS%\IDE\EntityFramework.dll" #>
    <#@ assembly name="%VS120COMNTOOLS%\IDE\Microsoft.Data.Entity.Design.dll" #>
    
  4. 将您的环境变量修复为仅限IDE的目录。在我的情况下

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\
    
  5. 重建项目或删除实体框架并重新创建。

答案 6 :(得分:0)

大家好,我在应用程序中遇到此错误,原因是我在做的是: 1.恢复解决方案/模块所在的实体, 2.删除%VS110COMN% 所以代码看起来像这样

<#@ assembly name="..\IDE\EntityFramework.dll" #>
<#@ assembly name="..\IDE\Microsoft.Data.Entity.Design.dll" #>

答案 7 :(得分:0)

我知道现在回答这个问题太迟了。

按照以下步骤为我完成这项工作。

  1. 从现有的abc.tt文件中复制代码。
  2. 删除abc.tt文件。
  3. 再次将所有代码复制到ABC.tt文件中。

复制代码后,只需保存文件并构建解决方案,它还将重新生成完整的.cs文件。

答案 8 :(得分:-2)

试试这个:

  1. 双击.edmx模型
  2. 右键单击“实体数据模型设计器”
  3. 上的任意位置
  4. 点击“从数据库更新模型”
  5. 点击完成