首页 > Web开发 > 详细

vs2015 mvc项目数据迁移报错

时间:2016-03-06 19:03:50      阅读:485      评论:0      收藏:0      [点我收藏+]

 

第一次做个mvc项目玩玩,然后需要数据迁移,也没做过,就百度找怎么数据迁移,

找到的方法是:

如果数据是在类库项目里就在‘程序包管理控制台’输入:enable-migrations -ContextTypeName EFDbContext 。(EFDbContext是类名)别忘把默认项目给位类库项目。

如果只有一个单独的mvc项目就直接输入:Enable-migrations   。(应该是这样的我也没试)

找到方法后但报错了,所以遇到这个问题果断百度一下,不知道是不是我搜索方法不对,,只有搜到国外网站的。

解决方法:

http://edd.stefancamilleri.com/2016/02/14/update-database-fails-in-package-manager-console-on-windows-10-insider-preview-with-ambiguous-type-error/

这是一个国外大神写的临时解决办法。

下面我在解释一下。。

第一步:Microsoft.VisualStudio.Shell.Package

报错内容:

Type name ‘ Microsoft.VisualStudio.Shell.Package ‘ is ambiguous, it could be ‘ Microsoft.VisualStudio.Shell.Package , Microsoft.VisualStudio.Shell.14.0 , Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a‘ or ‘ Microsoft.VisualStudio.Shell.Package , 
 Microsoft.VisualStudio.Shell.10.0 , Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a‘

To fix this, do the following:

  1. 打开这个文件:(报错时写的有路径)
    • C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\ZPM4HZQB.YOS\Modules\NuGet\ Profile.ps1
  2. 找到 126行 (Ctrl+G 转到)
  3. 改前:
    • $service = [ Microsoft.VisualStudio.Shell.Package ]::GetGlobalService($ServiceType)
  4. 用下面的替换掉原来的:
    • $accel = [psobject].Assembly.GetType("System.Management.Automation.TypeAccelerators")
      $accel::add(“specificShell”,” Microsoft.VisualStudio.Shell.Package , Microsoft.VisualStudio.Shell.14.0 , Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”)
       $service = [specificShell]::GetGlobalService($ServiceType)
  5. 重启下vs.

    第二部:NuGet.VisualStudio.IVsPackageInstallerServices

    报错内容:

    Type name ‘NuGet.VisualStudio.IVsPackageInstallerServices‘ is ambiguous, it could be ‘NuGet.VisualStudio.IVsPackageInstallerServices, JetBrains.Platform.VisualStudio.SinceVs11, Version=104.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325‘ or 
    ‘NuGet.VisualStudio. IVsPackageInstallerServices, JetBrains.PsiFeatures.VisualStudio.SinceVs11, Version=104.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325‘.

    To fix this, do the following:

    1. 打开你项目里的这个文件:
      • {NuGetPackagesFolder}\EntityFramework.6.1.3\tools\ EntityFramework.psm1
    2. 找到1004行 
    3. 改前:
      • $packageInstallerServices = $componentModel.GetService([NuGet.VisualStudio.IVsPackageInstallerServices])
    4. 用下面三行替换掉改前的内容:
      • $accel = [psobject].Assembly.GetType("System.Management.Automation.TypeAccelerators")
         $accel::add(“NuGetInstallerServices”,”NuGet.VisualStudio.IVsPackageInstallerServices, JetBrains.Platform.VisualStudio.SinceVs11, Version=104.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325”)
         $packageInstallerServices = $componentModel.GetService([NuGetInstallerServices])
      • 重启vs
      • 注意(上面第二行里的第二个参数可能与你的不同要替换为你报错时错误里所指的类型,就是上方报错的蓝字要与下面第二行的蓝字一样)。。我TM的就是直接用这里的没替换一直报错无法转换类型,搞了半天才反应过来。。。

 

vs2015 mvc项目数据迁移报错

原文:http://www.cnblogs.com/ashidamana/p/5247936.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!