2017-04-02 111 views
4

所以在Visual Studio 2017年,我得到的自动生成packages.config文件以下警告:Visual Studio的“包”元素未声明警告

的“套餐”元素未声明。

这是因为这里的同一个问题:The 'packages' element is not declared

在这里:nuget 'packages' element is not declared warning

的共识似乎是,这个警告可以安全地忽略。此外,一些评论表明,解决这一问题的尝试可能会导致其他问题和/或难以维护。

例如,一个贡献者说:

的答案都不会永久解决您的问题。如果你进入添加XSD的路径(从Xml菜单中选择“Create schema”),你最终会遇到包管理器的问题,因为它会在你添加一个新包的时候清理你的packages.config文件。

然而,最近的贡献者建议简单地将<packages>更改为<packages xmlns="urn:packages">。这样做会导致错误消失,我没有看到明显的问题(我的经验非常有限)。

但是,我不想冒险导致Nuget问题,而不需要解决警告。另一方面,在VS中创建的每个项目,我猜测,默认情况下都会出现这个错误,所以一个简单,安全且易于维护的修复应该是很好的。

所以我的底线问题是:在packages.config文件中将<packages>更改为<packages xmlns="urn:packages">的确切原因是什么,并且是否存在这样做的风险或缺点?

回答

7

究竟是什么改变<packages><packages xmlns="urn:packages">在packages.config文件做什么,以及是否有任何风险或缺点来这样做呢?

packages.config文件中的<packages xmlns="urn:packages">只是将模式添加到文件中。 xmlns(namespace)声明不过是一个统一资源标识符(URI)形式的字符串,并且不需要此声明。因为包中的资源实际上可以被NuGet使用。这就是为什么微软没有使用<packages xmlns="urn:packages">而不是<packages">

由于packages.config文件自动生成是安全的,NuGet可以很好地使用,所以您可以很好地忽略警告,不需要更改packages.config,没有风险或缺点。

+0

谢谢!非常丰富。我只是一个人保持良好状态而忽略了警告。 – Pennywise

-1

添加对EntityFramework.SqlServer的引用... 100%测试,我有同样的问题,这就是为我工作。

+0

这不提供问题的答案。一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),你将可以[对任何帖子发表评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange。COM /问题/ 214173 /为什么-DO-I-需要50声誉对评论 - 什么 - 可以-I-DO-代替)。 - [来自评论](/ review/low-quality-posts/18102023) –

+0

@TomJowitt这是一个答案.. – Rob