【问题标题】:Metadata file not found - Data.Entity.Model未找到元数据文件 - Data.Entity.Model
【发布时间】:2013-11-08 23:57:36
【问题描述】:

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

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

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

有什么建议吗?我想将文件粘贴到此目录中,但想不出那里可能有什么。

【问题讨论】:

  • 您似乎没有安装 EF 设计器。转到“程序和功能”,单击“Microsoft Visual Studio 2013”​​-> 更改并确保选中 Microsoft Web Developer Tools(我记得有 Sql Data Tools 或类似的东西也会安装设计器)。您似乎已经在自定义位置安装了 VS,您是否也有包含丢失文件的“c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE”文件夹?
  • 不幸的是,我安装了 Web 开发工具,也安装了 SQL Server 2012。我在您建议的位置没有此文件。我在我的自定义 VS 位置确实有来自 Data.Entity 的文件,其中一个,Design.Extensibility 似乎在项目中被正确引用。我尝试将丢失的 .dll 复制到项目中的某些位置,但没有成功。它的位置是:D:\Program Files\Visual Studio 13\Common7\IDE\ 我还尝试了连接字符串的更改:metadata=res://*/|res://*/|res://*/;provider= 我会努力参考,但我担心 DataModel.tt 需要的位置是硬编码。
  • 是的,硬引用不起作用:/
  • 我也将丢失的文件粘贴到D:\Program Files\VS2013\Common7\Tools\IDE,但它没有用... //抱歉多发
  • 那么,丢失的 dll 放在哪里(即您从中复制它的地方)?在我看来,您的安装可能会被破坏,因为您似乎没有在正确的位置拥有所有必需的文件。该文件应位于“c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE”文件夹中。它从 ttinclude 文件中被引用如下:<#@ assembly name="%VS120COMNTOOLS%..\IDE\Microsoft.Data.Entity.Design.dll" #>。如果您的 VS120COMNTOOLS 变量指向错误的文件夹,则将无法正常工作

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


【解决方案1】:

基于

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 的正确安装路径不兼容,所以我从高级系统属性中更改了它,它可以工作

【讨论】:

  • 在哪里可以找到这些“高级系统属性”?我想看看这个修复是否适用于我的问题。谢谢。
  • 抱歉@LouisSherwood 耽搁了。您可以从 Windows“系统属性”对话框的“高级”选项卡底部的按钮修改“环境变量”。检查这个image
  • 使用 Visual Studio 2013 Professional 为我工作。当正确的目录(对我来说)是 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools 时,我的指向 C:\Program Files (x86)\Common7\Tools
  • 是的,看起来我将 VS 非默认安装到另一个驱动器让我遇到了同样的问题。只需要更新 var,重新启动 VS,它就开始工作了。谢谢!
  • 这终于为我解决了,我最初在 D:\ 中安装了 VS,并通过将其更改为我的 C: 它解决了我的问题!
【解决方案2】:
  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. 别忘了在词尾添加\

【讨论】:

    【解决方案3】:

    我相信在将 VS 重新安装到其他驱动器时,VS 没有正确更新 VS120COMNTOOLS 变量。请参阅this SO thread 以获得更多答案。

    【讨论】:

      【解决方案4】:

      问题出在文件原来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 中。命运多舛的文件中的以下几行:

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

      对不起。

      【讨论】:

        【解决方案5】:

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

        devenv /resetsetting
        

        在 VS 2013 命令提示符下,它起作用了。在我同事的机器上做了同样的事情,它也有效。不确定它是否会起作用,但可以尝试一下

        【讨论】:

        • 修复错误的环境变量后,此命令有效。
        【解决方案6】:

        这对我有用。

        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. 重建项目或删除实体框架并重新创建。

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            【解决方案8】:

            我知道现在回答这个问题有点晚了,但是。

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

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

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

            【讨论】:

              【解决方案9】:

              试试这个:

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

              【讨论】:

              • 为什么要投反对票。这些步骤足以解决现实世界场景中的“找不到元数据文件”。如果这对你不起作用,那并不意味着它对其他人不起作用。
              猜你喜欢
              • 1970-01-01
              • 2022-10-20
              • 2013-03-11
              • 2010-11-28
              • 2015-05-13
              • 2018-10-05
              • 1970-01-01
              • 2014-05-31
              相关资源
              最近更新 更多