【问题标题】:Visual Studio 2015 RC Entity Framework 6.1.3 Migrations ErrorVisual Studio 2015 RC 实体框架 6.1.3 迁移错误
【发布时间】:2015-07-13 20:41:05
【问题描述】:

仅当解决方案具有多个引用 EntityFramework 的项目时,才会出现下面粘贴的错误。 运行“Enable-Migrations”或“Add-Migration”时,我收到以下错误:

New-Object : 提供的值无效,或者属性是 只读。更改值,然后重试。在 D:\Projetos\Monitoramento\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:757 字符:13 + $info = 新对象 System.AppDomainSetup -Property @{ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [New-Object],异常 + FullyQualifiedErrorId : SetValueException,Microsoft.PowerShell.Commands.NewObjectCommand 在此对象上找不到属性“PrivateBinPath”。验证 该属性存在并且可以设置。在 D:\Projetos\Monitoramento\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:772 字符:9 + $info.PrivateBinPath += ';lib\net45' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId:PropertyNotFound 异常调用“LoadFrom”,参数为“1”:“指定的路径、文件名或 两者都太长了。全限定文件名必须小于 260 字符,并且目录名称必须少于 248 个字符。” 在 D:\Projetos\Monitoramento\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:780 字符:5 + $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path $ToolsP ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : PathTooLongException 您不能在空值表达式上调用方法。在 D:\Projetos\Monitoramento\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:781 字符:5 + $dispatcher = $utilityAssembly.CreateInstance( + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull 使用“8”参数调用“CreateInstanceFrom”的异常:“指定的路径,文件 名称,或两者都太长。完全限定的文件名必须小于 超过 260 个字符,并且目录名必须小于 248 字符。”在 D:\Projetos\Monitoramento\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:809 字符:5 + $domain.CreateInstanceFrom( + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : PathTooLongException

EntityFramework 6.1.1 的输出:

使用“1”个参数调用“LoadFrom”的异常:“指定的 路径、文件名或两者都太长。完全限定的文件名 必须少于 260 个字符,并且目录名必须少于 超过 248 个字符。”在 C:\Users\Hudson\Documents\Visual Studio 2015\Projects\WpfApplication4\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1:780 字符:5 + $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path $ToolsP ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : PathTooLongException 您不能在空值表达式上调用方法。在 C:\Users\Hudson\Documents\Visual Studio 2015\Projects\WpfApplication4\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1:781 字符:5 + $dispatcher = $utilityAssembly.CreateInstance( + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull 使用“8”参数调用“CreateInstanceFrom”的异常:“指定的路径,文件 名称,或两者都太长。完全限定的文件名必须小于 超过 260 个字符,并且目录名必须小于 248 字符。”在 C:\Users\Hudson\Documents\Visual Studio 2015\Projects\WpfApplication4\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1:809 字符:5 + $domain.CreateInstanceFrom( + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : PathTooLongException

【问题讨论】:

标签: c# .net migration entity-framework-6 visual-studio-2015


【解决方案1】:

就我而言,我只是:

1.封闭VS。
2.手动删除了packages文件夹中的Entity Framework包。
3.打开的项目和恢复的包。

这对我有用。

【讨论】:

    【解决方案2】:

    根据 EF 错误 #1950 上的 comment by yishaigalatzer,NuGet 3.0 RC2 现已发布,应该可以解决此问题。只需从codeplex 下载 VSIX 并安装即可。

    这解决了我的问题。

    【讨论】:

      【解决方案3】:

      【讨论】:

      • 我必须复制并粘贴脚本的内容而不是替换文件,否则我会收到脚本未进行数字签名的错误。否则就行了,干杯。
      • @MIP1983 如果您替换文件,那么您需要从文件属性中“取消阻止”.. 为我工作 ;)
      • 工作就像一个魅力。但是,我仍然在加载 EF 时遇到了一些其他问题,所以我不得不通过以下方式手动加载 EF 模块:Import-Module .\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1
      【解决方案4】:

      我找到了一个临时解决方案: 评论 <package id="EntityFramework" version="6.1.3" targetFramework="net46" userInstalled="true" /> 的所有“packages.config”,只留下您想要使用迁移的项目。

      团队 EntityFramework (https://github.com/aspnet/EntityFramework/issues/1950) 和 NuGet (https://github.com/NuGet/Home/issues/528) 已经意识到了这个问题,我们很快就会有最终的解决方案。

      【讨论】:

        【解决方案5】:

        似乎是一个普遍的问题,但显然难以回购?

        Enable-migrations error #1950

        建议您在上面添加您的问题详细信息,希望可以快速解决。

        【讨论】:

          【解决方案6】:

          我有同样的问题:(

          我的解决方法是:

          1. 将实体框架降级到 v6.1.1(至少新的 NuGet GUI 让这变得非常容易)
          2. 在包管理器控制台上运行命令(例如Add-Migration ...)。这个版本好像可以用了
          3. 升级回实体框架 v6.1.3

          【讨论】:

          • 我按照所有步骤操作,但问题仍未解决。仅当您有一个安装了 EntityFramework 的项目时才有效。如果你有不止一个,按照上面提到的步骤后,没有解决。我尝试以管理员身份运行,没有解决。
          • 哦 :( 我也有几个在解决方案中安装了 EF 的项目,我只对包含迁移的项目进行了降级。您可以尝试删除 packages 目录并完全删除事先恢复所有软件包。我也在玩的时候这样做了,但认为它对我的解决方法没有任何帮助。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-07-23
          • 1970-01-01
          • 1970-01-01
          • 2021-07-01
          • 2013-09-17
          • 1970-01-01
          相关资源
          最近更新 更多