8

我一直在尝试安装实体框架 6,它总是回滚并出现错误

error: This operation would create an incorrectly structured document.

我已经卸载了对该位置提到的每个 dll 的所有引用。http://entityframework.codeplex.com/wikipage?title=Updating%20Applications%20to%20use%20EF6

疯狂的是,我可以创建一个新项目,创建一个 webAPI 程序,并尝试添加 Entity Framework 6,但我得到了同样的错误,即使在删除了对System.Data.Entity.dll的所有引用之后我已经是几个了几天后,需要认真的帮助。

我该怎么做才能安装 Entity Framework 6?

注意:它只会安装 find 到类库,而不是 WebApi 或 MVC 应用程序。


如果它有帮助,这里有一些更详细的错误信息。

PM> Install-Package EntityFramework -Version 6.0.0
Installing 'EntityFramework 6.0.0'.
Successfully installed 'EntityFramework 6.0.0'.
Adding 'EntityFramework 6.0.0' to AC.
Successfully added 'EntityFramework 6.0.0' to AC.
System.InvalidOperationException: This operation would create an incorrectly structured document.
   at System.Xml.Linq.XDocument.ValidateDocument(XNode previous, XmlNodeType allowBefore, XmlNodeType allowAfter)
   at System.Xml.Linq.XDocument.ValidateNode(XNode node, XNode previous)
   at System.Xml.Linq.XContainer.AddNodeSkipNotify(XNode n)
   at System.Xml.Linq.XContainer.AddContentSkipNotify(Object content)
   at System.Xml.Linq.XContainer.Add(Object content)
   at System.Data.Entity.Migrations.Extensions.XContainerExtensions.GetOrCreateElement(XContainer container, String elementName, XAttribute[] attributes)
   at System.Data.Entity.ConnectionFactoryConfig.ConfigFileManipulator.AddOrUpdateConfigSection(XDocument config, Version entityFrameworkVersion)
   at System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand.<>c__DisplayClass3.<Execute>b__1(XDocument c)
   at System.Data.Entity.ConnectionFactoryConfig.ConfigFileProcessor.ProcessConfigFile(ProjectItem configItem, IEnumerable`1 manipulators)
   at System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand.<>c__DisplayClass3.<Execute>b__0(ProjectItem i)
   at System.Data.Entity.ConnectionFactoryConfig.ConfigFileFinder.FindConfigFiles(ProjectItems items, Action`1 action)
   at System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand.Execute()
   at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Uninstalling 'EntityFramework 6.0.0'.
Successfully uninstalled 'EntityFramework 6.0.0'.
Install failed. Rolling back...
Install-Package : This operation would create an incorrectly structured document.
At line:1 char:16
+ Install-Package <<<<  EntityFramework -Version 6.0.0
    + CategoryInfo          : NotSpecified: (:) [Install-Package], RuntimeException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
4

6 回答 6

18

我有同样的问题。事实证明,我正在将 EF 添加到我的一个非常旧的项目中,并且 web.config 为<configuration />元素定义了这个命名空间:

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

删除该命名空间声明 ( xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0") 帮助并解决了这个问题。

于 2014-02-10T15:23:02.277 回答
5

我遇到了同样的问题,发现原因是 web.config 文件中的元素。就我而言,我改变了这个:

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

对此:

<configuration>

那解决了它。

于 2014-02-16T23:36:34.227 回答
2

这与您的配置文件有关。只是为了详细说明我找到的解决方案:

首先保存你的 app.config、packages.config 和 web.config

然后全部删除。我实际上删除了 app.config 和 packages.config,只是清除了 web.config 之间的行。

然后我再次运行 Install-Package,一切顺利,然后我重新添加到我的配置中。

于 2014-02-08T13:16:24.167 回答
2

当 Entity Framework 升级时,app.config 或 web.config 文件将得到写入其中的内容。我怀疑这可能是问题所在。查看您的 app.config 或 web.config 文件。也许 EF 升级无法在没有生成无效 xml 文档的情况下写入它们。

于 2013-12-12T06:36:35.873 回答
1

在 Web 应用中,web.config 引用了外部 app.config:

<appSettings configSource="App.config" />

这要求 App.config 采用特定格式,EntityFrameworks 安装程序认为无效

所以,和其他人一样,关键是:

  • 重命名/删除 App.config

  • 安装 EF

  • 带回 App.config

于 2018-01-16T23:05:33.893 回答
0

我有同样的问题,我修改了我的 web.config 从

(<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">)

(<configuration>)
于 2015-03-04T14:40:02.480 回答