“ResolveLibraryProjectImports”任务意外失败

我有一个Xamarin项目,它基于MvvmCross 。 该项目适用于iOS和Android。 我在Visual Studio 15中打开了这个项目。我遇到了一些错误,我很快就解决了。 有一些错误,即使在Google和Stackoverflow上搜索后也无法解决。 我已经尝试了在Stackoverflow上找到的每一个方法,但仍然存在所有剩余的错误。 这个项目正在使用像RestSharp和BoxApi.V2这样的第三方库(更多)

我在下面发布我的错误日志。

 Severity Code Description Project File Line Suppression State Error The "ResolveLibraryProjectImports" task failed unexpectedly. System.IO.FileNotFoundException: Could not load assembly 'RestSharp(Android), Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile? File name: 'RestSharp(Android).dll' at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName, ReaderParameters parameters) at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName) at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.GetAssembly(String fileName) at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(DirectoryAssemblyResolver res, ICollection`1 jars, ICollection`1 resolvedResourceDirectories, ICollection`1 resolvedAssetDirectories, ICollection`1 resolvedEnvironments) at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() BoxApi.V2 (Android) 

此解决方案中包含的所有项目都会重复此错误。 所以我多次收到此错误。

我还想补充一点,该项目以前是在MAC上构建的,我正在使用Windows,这是否会产生一些兼容性或跨操作系统问题? 我检查了所有的assembly参考,一切正常。

我确实在Visual Studio 2017中使用了全新的Xamarin.Forms应用程序。

根本原因似乎是我让VS2017在它的默认位置’C:\ Users \ Dave \ Documents \ Visual Studio 2017 \ Projects’中创建项目,这导致一个或多个文件现在有一个太长的路径。

我将解决方案移动到我的D驱动器的根目录,它构建没有任何问题。

您的问题很可能与Xamarin论坛上的这篇文章以及此 bugzilla条目相关联。 如果没有可重复的样本,我建议您尝试的是:

  • 将Xamarin for Visual Studio,Xamarin.Android和Xamarin.iOS更新到最新的稳定版本
  • 清洁和重建
  • 从项目目录中删除所有binobj文件夹
  • 重新启动Visual Studio /您的PC

如果没有这一切,如果没有可重复的样本和可能的Xamarin日志,就不可能有任何人可以帮助你。

编辑你的android项目文件(csproj),如下所示

在此处输入图像描述

本期主题可能会指导https://github.com/xamarin/AndroidSupportComponents/issues/51

有同样的问题。 这是我的解决方案

  1. 重新启动Visual Studio
  2. 打开项目
  3. 清洁解决方案
  4. 重建解决方案
  5. 关闭解决方案
  6. 重新打开该项目

当我意外地在解决方案中包含的类库中安装nuget包时,这发生在我身上。 我只需要从类库项目中卸载软件包。

就我而言,这个问题伴随着另一个与我的xaml有关。
为了让这个错误消失,我必须解决第二个问题。 我使用新的默认内容清理该类,然后清理所有项目和解决方案。 最后,关闭视觉工作室,打开它,运行项目,它的工作知道.-。

这仍然是一个新问题,在我想尝试将代码转移到更短路径的所有尝试之后 – 然而由于svn管理将变得复杂,这是很多工作,所以我想首先validation路径是否真的是一个问题,一个这样做的方法是检查android SDK的存储位置。 我在Mac上,调查显示SDKs路径比我的项目路径长。 另外,我尝试了一个新项目,这是正确的编译。

所以我放弃了转移的想法。 相反,我使用svn并比较自上次正确构建以来发生的变化。

比较显示droid的项目文件在某种程度上是指iOS的项目文件,它似乎是Visual Studio的一些bug。 所以我恢复了变化,而且都恢复了正常。

我得到了同样的错误,我通常通过关闭所有其他打开的xamarin解决方案来解决这个问题,还有一种方法我解决了这个问题 – >去任务管理器找到MSBUILD服务并结束该服务 – >清理你的解决方案 – >重建

我正在使用XAML( .xaml)和代码隐藏文件( .xaml.cs)。 我的问题是我有相同的页面名称,但在不同的名称空间下。 XAML和代码隐藏文件不匹配在一起。 所以最后这是我的XAML的一个问题,因为它当然找不到view元素。

对我来说问题出在我的xaml文件中……

不知何故,在设置布局边界时,我使用了’。’ 作为分隔符而不是’,’

例如

AbsoluteLayout.LayoutBounds="0.5.0.3,1,0.3"应该是AbsoluteLayout.LayoutBounds="0.5,0.3,1,0.3"

因此改变’。’ ”,’解决了这个问题

这可能是您的参考/参考组件的问题?

如果您查看解决方案资源管理器中每个项目的references文件夹下的内容,则Visual Studio无法找到,删除并重新添加它们的任何引用(右键单击要添加的引用文件夹)。

我已经面对这个问题一千次这实际上是一个非常简单的事情,当你创建一个新的项目时,visual studio在C:Drive中创建它的默认文件夹,所有你需要做的就是将你的项目移出其他的Drive Like D :, E:无论如何确保将其保留在驱动器的根目录中,即如果您将其移动到D中:然后将其放置在D / Project / solutionFile中

简答:

  1. 将包含解决方案的目录移动到桌面

要么

  1. 删除对故障库的引用(在“参考”部分中)
  2. 关闭Visual Studio
  3. 在Windows资源管理器中转到应用程序的项目目录(“Projectname”.sln文件所在的位置)。
  4. 取消隐藏隐藏物品(查看选项卡;检查隐藏物品)
  5. 删除“vs”隐藏文件夹,如果有名为“sou”的文件也删除。
  6. 重新启动Visual Studio并启动解决方案

我正面临与OP相同的解决方案。 这是OP所遇到的错误的解决方案。 我已经解决了下面其他人可能发生的其他错误原因。

说明:通常会出现两种不同类型的问题。 第一个包括System.IO.reader的项目文件太长导致错误,包括“file.path too long”行的一些文本。

导致错误的第二个原因是VS形成了dll的正确名称,但是项目资源的路径不正确。 一个例子可能是VS使用“App1 \ bin \ Debug \ net452 \ temp.dll”而不是“App1 \ bin \ Debug \ net1.6 \ temp.dll”。

问题所在:System.IO.PathTooLongException:指定的路径,文件名或两者都太长。 完全限定的文件名必须少于260个字符,目录名必须少于248个字符。

尝试将项目移动到“C:/”之类的其他位置,或者更改项目名称以获得更简短的内容

我遇到了同样的问题,上面的解决方案都没有奏效。 在关于密码学的列表上注意到并出现错误后,我知道它必须与启用FIPS相关(VPN客户端需要)

Xamarin编译时错误

通过禁用FIPS并重新启动Visual Studio,问题得以解决。

在此处输入图像描述

我也有这个错误。 在我的情况下,它伴随着Xamarin.Forms.Maps没有正确导入到其中一个xaml.g.cs文件。 我把所有的使用陈述都正确了。 IDE没有显示任何错误,但它一直告诉我Xamarin.Forms没有名称空间Map。 它在MapPage.xaml.g.cs成为Xamarin.Forms.Map而不是Xamarin.Forms.Maps.Map ,我无法手动强制修复。 事实certificate,建议的xmlns:maps地图导致了问题。 IDE告诉我使用"http://xamarin.com/schemas/2014/forms"但正确的命名空间是"clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps" 。 我改变了它后,它能够构建我的App1.dll

我们也遇到过这种情况,在构建多个项目和非常深/复杂的依赖树时,它似乎是某种竞争条件(我们的示例有超过100个项目)。

我们能够解决这个问题(除了不断重建)之外的唯一方法是禁用Visual Studio 2017的并行构建能力(工具 – >选项 – >项目和解决方案 – >构建和运行 – >“1”最大并行项目数编译)。

问题似乎出现在ResolveLibraryProjectImports.cs中( https://github.com/xamarin/xamarin-android/blob/93ddf96f86710ad848d5189858567dd7fe964579/src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs )很可能是一场比赛条件与他们的逻辑,以缩短文件名。

围绕这个零测试,这意味着很可能有一些狡猾的代码。

我将尝试挖掘更多并在GitHub上打开一个问题,但找到一个可靠的回购可能会非常困难。

这就是我得到错误的方式。 在StackLayout中,我输入了Padding属性,并用空格而不是逗号分隔了4位数。 为了找到错误,我必须单独注释掉XAML控件并重建以隔离错误的位置,最终我找到问题行。 所以基本上这是我在XAML代码中出现语法错误的错误信息! 在任何其他语言中,我都希望知道错误是什么,所以我可以在几秒钟内修复它。 但这花了我几个小时 – 虽然下次我知道该怎么做。