我在2017年Visual Studio Community(v15.5.6)中使用Windows 10。现在我正试图将Xamarin.Forms
的NuGet包从v2.3.4.231更新为v2.5。
NuGet包Xamarin.Forms在Portable项目和Xamarin.iOS项目上成功更新,但在Xamarin.Android上失败。它继续回滚到以前的版本并显示错误消息"该集合是只读的" 。
提前感谢那些可以指出我的错误的人。 :)非常感谢。
答案 0 :(得分:2)
好的,最终我通过以下所有步骤解决了这个问题:
(1)首先为您的项目选择正确的Target Framework
。对我来说,我的目标是 Android Oreo 。如果您的项目支持最新的Android SDK,那将会很好。转到Tools
- > Android
- > Android SDK Manager
检查并安装最新的SDK。
(2)在更新Xamarin.Forms 2.5之前,请确保Android中的某些NuGet包具有最新功能。对于我的情况,我需要确保包Xamarin.Android.Support.Design
已更新到版本25或更高版本。
(3)如果您点击错误消息“该集合是只读的”。转到Tools
- > NuGet Package Manager
- > Package Manager Settings
并点击按钮Clear All NuGet Cache(s)
。在此之后,关闭Visual Studio - >转到您的项目文件夹 - >删除所有bin
和obj
文件 - >再次启动Visual Studio。
(4)好的,现在您可以将NuGet包Xamarin.Forms更新到2.5版。更新后,清理并构建项目。
答案 1 :(得分:0)
似乎NuGet的一个已知问题有时会发生,并且是由程序包缓存和临时文件引起的(请参阅VS Developer Community中的issue report)。
解决方案是转到Tools
- > NuGet Package Manager
- > Package Manager Settings
然后点击Clear All NuGet Cache(s)
按钮或使用 Alt + C 快捷方式。现在关闭Visual Studio,导航到项目文件夹并删除所有obj
和bin
文件夹。再次启动Visual Studio,现在一切正常。
答案 2 :(得分:0)
我遇到了同样的问题-我去更新了几个月未使用过的Xamarin旧解决方案上的所有软件包。
我知道了
“此收藏集是只读的”
消息。
我意识到我正在为另一个项目运行VS2017的另一个实例(并且实际上也对NuGet进行了更新,尽管可能不相关)。
我关闭了另一个VS2017(以及我一直在运行的Android模拟器,尽管我也不认为这与此相关)。
我经历了两个NuGet更新周期,其中VS2017表示类似
“ ... \ packages \ Xamarin.Forms.foo.bar.w.x.y.z”中的软件包无法卸载。
重新启动Visual Studio以完成该过程。
(但每次都有一个不同的文件)
我每次都认真地重新启动,最后它发出吱吱作响的声音,更新了所有软件包。