MVC项目中包之间的歧义

时间:2016-01-14 12:27:45

标签: c# asp.net-mvc entity-framework visual-studio

当我突然收到所有这些错误时,我试图更新MVC 5项目中的迁移:

  

输入名称' NuGet.VisualStudio.IVsPackageInstallerServices'是不明确的,它可能是' NuGet.VisualStudio.IVsPackageInstallerServices,Microsoft.VisualStudio.Authentication.ConnectedServices,Version = 1.0.0.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或者' NuGet.VisualStudio.IVsPackageInstallerServices,Microsoft.VisualStudio.Web.Project,Version = 2.3.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。   在E:\ AllData \ Dropbox \ Pro Gaming \ www \ Pro_Gaming \ packages \ EntityFramework.6.1.3 \ tools \ EntityFramework.psm1:1004 char:5   + $ packageInstallerServices = $ componentModel.GetService([NuGet.Vis ...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~       + CategoryInfo:InvalidArgument:(:) [],RuntimeException       + FullyQualifiedErrorId:AmbiguousTypeReference

此外:

  

您无法在空值表达式上调用方法。在   E:\ ALLDATA \ Dropbox的\临   游戏\ www \ Pro_Gaming \ packages \ EntityFramework.6.1.3 \ tools \ EntityFramework.psm1:1006 char:5   + $ vsPackage = $ packageInstallerServices.GetInstalledPackages()| ? ...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~       + CategoryInfo:InvalidOperation:(:) [],RuntimeException       + FullyQualifiedErrorId:InvokeMethodOnNull

还有很多其他错误引用了这个问题的null值产品,我在这篇文章中已经省略了。

我首先认为这是Visual Studio的NuGet的一个问题所以我重新安装了它。然后,我尝试重新安装Entity Framework。

之后我决定尝试在不同的MVC解决方案上安装EntityFramework和NuGet包,它运行完美。

我还强制卸载和安装Entity Framework(使用-reinstall和updatePackage命令)无济于事。我在文件夹中搜索了任何文件名重复项,但我还没找到。

此外," NuGet.VisualStudio.IVsPackageInstallerServices"即使在同一解决方案的文件内容中也无处可寻。

问题在于这个特定的解决方案!

3 个答案:

答案 0 :(得分:5)

在Microsoft修复此问题之前,我已在此处发布了一个解决方法 - > http://edd.stefancamilleri.com/2016/02/14/update-database-fails-in-package-manager-console-on-windows-10-insider-preview-with-ambiguous-type-error/

您可以使用类型别名绕过它。

更新:与此同时,MS已经解决了这个问题。也就是说,如果您将来遇到类似的错误,这种方法将会起作用。

答案 1 :(得分:2)

无法访问项目,这很难调试。但是 - 我可以告诉你,我们最近迁移到VS2015(并更新了MVC)并得到了一些相同的错误。

我们最终通过在notepad ++中查看.csproj和.sln文件进行解析。对于我们来说,文件中的程序集引用了VS2015 UI中没有显示的内容。

手动删除旧引用,保存csproj文件,然后在VS2015中重新打开解决方案为我们解决了这个问题。

答案 2 :(得分:2)

更新:在Windows 10 Redstone的build 14291中确认了基础PowerShell问题。

我们已经确定了Windows最新预览版本的行为更改,我们正在与Windows和Visual Studio团队合作以找出解决方案。

我们会发布有关此错误的任何更新:https://entityframework.codeplex.com/workitem/2872