2017-04-02 110 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