8

尝试使用实体框架时,我在 Visual Basic 中的 Visual Studio 2013 中遇到了一个相当不寻常的错误。无论我是使用现有项目还是创建新项目,这都无关紧要。当我更换为装有 Win 8.1 的新 PC 时,它开始发生。

我使用数据库中的向导创建了一个新模型。它很好地创建了图表。但是,我收到一个编译错误,告诉库EntityFramework.dll不存在。但是,唯一的问题是路径EntityFramework.dll错误(看起来像:)C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\..\IDE\EntityFramework.dll。但是,地址将是D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE. 我将在哪里更改该值?

于力

4

7 回答 7

25

显然,将 Visual Studio 重新安装到其他驱动器时,%VS120COMNTOOLS%环境变量未正确更新,并指向最初安装 VS 的驱动器上的文件夹。生成 DDL SQL 的模板使用%VS120COMNTOOLS%环境变量来查找生成代码所需的程序集。由于该变量指向一个不再包含必要文件的文件夹,因此 T4 模板转换失败。

故障排除:

  • 打开VS2013的开发者命令提示符
  • 手动设置变量以指向正确的位置(例如

    set VS120COMNTOOLS="D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\")

  • 通过执行从命令提示符启动 VSdevenv
  • 验证现在是否正常

(请注意,如果您按照上述步骤设置变量,它将仅适用于从此命令提示符启动的 VS 实例。)

如果上述工作进入计算机属性(例如在 Win 8/Win 8.1 中,在搜索窗口中键入“此 PC”),右键单击图标并选择“属性”,进入“高级”选项卡并单击“环境变量”按钮,然后在“系统变量”窗口中找到VS120COMNTOOLS变量,双击(或单击“编辑”按钮)并修复变量,使其指向正确的文件夹。

不要忘记工具之后的最后一个反斜杠... C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools <---- 不起作用,但是... C:\Program Files (x86) \Microsoft Visual Studio 12.0\Common7\Tools\ <--- 将工作

于 2013-11-11T18:02:49.750 回答
1

它可能看起来很有趣,但我遇到了同样的问题(使用 Windows 8.1),但没有一个建议的方法对我有用!我检查了我的环境变量它有正确的路径但是当我用资源管理器测试它时(在资源管理器的地址栏中输入 %VS120COMNTOOLS%)它没有出现!相反,它说“windows 找不到 %VS120COMNTOOLS% 确保您输入了正确的名称”所以我所做的只是删除了变量并使用完全相同的路径重新创建它,重建后错误消失了!!!

所以如果你们有同样的问题,那就试试吧

于 2014-04-29T14:09:44.020 回答
1

在我的情况下,这是一个权限问题,与环境变量文件路径无关,因为在我的情况下路径是正确的。

所以我所做的就是在整个 Visual Studio 安装文件夹中为我的当前用户添加权限,然后以管理员身份启动 Visual Studio。我重新生成了我的模型并且它工作了!

于 2015-06-04T21:44:11.573 回答
0

我在 Windows 8.1 上遇到了 VS2013 的这个问题。我通过复制解决了问题

EntityFramework.dll 和 Microsoft.Data.Entity.Design.dll

从 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE 到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools

这些文件位于两个位置,现在一切正常。我不得不删除我的数据库实体模型并重新开始以使事情正常进行。这可能只是一个 MS 编码错误,使 VS2013 出现在错误的位置。

于 2014-08-13T23:39:56.883 回答
0

我在 Windows Server 2012R2 上遇到了 VS2013 的这个问题。两个驱动器(C 和 D)。我尝试修复和卸载重新安装,但没有解决任何问题。这很hacky,但我让它工作了。

首先,我将系统变量从 D 更改为 C。为此,请转到控制面板 --> 系统和安全 --> 系统。在左侧,您将看到高级系统设置。在高级选项卡的底部,您会看到环境变量。我必须将 VS120COMNTOOLS 编辑到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools。它以前是 D:\Program Files\Microsoft Visual Studio 12.0\Common7\Tools。

然后我将 EntityFramework.dll 和 Microsoft.Data.Entity.Design.dll 从 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE 复制到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\通用7\工具\IDE。如果 IDE 文件夹不存在,则创建一个。那是我必须做的。看起来很奇怪,但它有效!

我不得不删除我项目中当前的 edmx,读取它,然后重新启动 VS。这样一个奇怪的问题,我花了很长时间拼凑多篇 stackoverflow 文章来解决整个问题。

于 2015-05-22T15:15:54.040 回答
0

%VS120COMNTOOLS% 的以下路径对我有用:

设置 VS120COMNTOOLS="D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\"

于 2015-09-25T09:35:16.367 回答
-1

我也面临同样的问题。我的 VS2012 位于“D:\Program Files (x86)\”。

我尝试使用 VS2012 命令提示符中的以下 set 命令为 VS 设置公共文件夹。

设置 VS120COMN="D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7"

这为我解决了这个问题。

于 2015-10-23T07:43:08.230 回答