【问题标题】:Visual Studio 'packages' element is not declared warningVisual Studio 'packages' 元素未声明警告
【发布时间】:2019-05-29 12:59:16
【问题描述】:

所以在 Visual Studio 2017 中,我在自动生成的 packages.config 文件中收到以下警告:

'packages' 元素未声明。

和这里的问题一样:The 'packages' element is not declared

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

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

例如,一位贡献者说:

没有一个答案能永久解决您的问题。如果您转到添加 XSD 的路径(从 Xml 菜单中,选择“创建架构”),您最终会遇到包管理器的问题,因为它会在您添加新包时清理您的 packages.config 文件。

但是,最近的贡献者建议将<packages> 更改为<packages xmlns="urn:packages">。这样做会使错误消失,我没有看到明显的问题(我在这里的经验非常有限)。

但是,我不想因为不需要解决的警告而冒险导致 Nuget 问题。另一方面,我猜,在 VS 中创建的每个项目默认都会出现此错误,因此最好有一个简单、安全且易于维护的修复程序。

所以我的底线问题是:在 packages.config 文件中将 <packages> 更改为 <packages xmlns="urn:packages"> 到底有什么作用,这样做有什么风险或缺点吗?

【问题讨论】:

    标签: visual-studio nuget


    【解决方案1】:

    在 packages.config 文件中将 <packages> 更改为 <packages xmlns="urn:packages"> 到底有什么作用,这样做有什么风险或缺点吗?

    在 packages.config 文件中使用 <packages xmlns="urn:packages"> 会将架构添加到文件中。 xmlns(命名空间)声明只不过是统一资源标识符 (URI) 形式的字符串,不需要此声明。 NuGet 使用 packages.config 中的 <packages> 节点来恢复项目依赖项,如架构部分 of the packages.config reference 中所述。这就是微软使用<packages> 而不是<packages xmlns="urn:packages"> 的原因。

    packages.config 文件是自动生成的,NuGet 可以按原样使用。无需更改文件,也没有与忽略警告相关的风险或不利因素。

    【讨论】:

    • 谢谢!信息量很大。我将独自离开并忽略警告。
    • 我遇到了以下错误:错误 MSB3644:找不到框架“.NETFramework,Version=v4.5”的参考程序集。要解决这个问题...我无法编译。但是,通过将 替换为 我的错误得到了解决。发生了什么?谢谢。
    • <packages xmlns="unicorn"> 似乎也摆脱了警告。但是,这两者都会阻止我的 nuget 包管理器找到我已安装的包。
    【解决方案2】:

    添加对 EntityFramework.SqlServer 的引用 ... 100% 测试,我遇到了同样的问题,这对我有用。

    【讨论】:

    • 对我来说也是......这似乎是一个答案......在他/她的情况下,他们遇到了一些问题,他添加了参考并删除了警告......
    猜你喜欢
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2014-06-17
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    相关资源
    最近更新 更多