我最近将我的Win VS 2017 Xamarin项目更新为Xamarin Forms 2.5.0.212934。我更新了一些其他软件包并同时添加了Microsoft.AppCenter 1.0.1。对Xamarin.Android命名空间中的许多包的依赖迫使它们更新到26.1.0.1。现在,当我构建时,我收到以下错误:
“此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是.... \ packages \ Xamarin .Android.Support.Vector.Drawable.23.3.0 \建立\ Xamarin.Android.Support.Vector.Drawable.targets“。
显然旧版本的引用仍然存在。 VS中的NuGet选项设置为自动检查和下载包。我已尝试过多种恢复,卸载和重新安装的组合,但无法解决此问题。我在项目中搜索了旧版本的引用,但没有找到。完全有可能我不知道在哪里看,因为NuGet包管理对我来说仍然是一个黑洞。我相信它高于项目级别,因为当我将项目文件从源代码控制恢复到已知的良好状态时,我得到了同样的错误。
我将在哪里搜索此依赖项,或者是否有某种方法可以使用我缺少的NuGet自动解析它?
答案 0 :(得分:2)
我能够解决这个问题,虽然根本原因仍然是个谜。我将记录我的决议,以防将来对其他人有所帮助。
我注意到了“失踪”的路径。文件是相对的,只查找两个目录。出于某种原因,当这个项目被创建时(来自VS / Xamarin模板),它被置于一个' src'文件夹,使此错误中的相对路径错误。为了测试这个,我将丢失的文件复制到错误引用的相对路径,并确保构建继续。此时还有其他错误,可能是因为不合适的包试图找到其他资源。
要解决问题,我从VS解决方案中删除了项目,将项目文件移到一个文件夹中,然后将项目重新添加到解决方案中。这导致所有包引用中的正确相对路径和成功构建。我现在唯一担心的是,在我不知不觉中破坏的项目中可能存在其他秘密依赖关系。时间会告诉......现在真的不是NuGet魔法的粉丝。如果我能够找到某个文件中不正确的相对路径的实际行,我可以手动修复它。