“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更新到最新的稳定版本
- 清洁和重建
- 从项目目录中删除所有
bin
和obj
文件夹 - 重新启动Visual Studio /您的PC
如果没有这一切,如果没有可重复的样本和可能的Xamarin日志,就不可能有任何人可以帮助你。
编辑你的android项目文件(csproj),如下所示
本期主题可能会指导https://github.com/xamarin/AndroidSupportComponents/issues/51
有同样的问题。 这是我的解决方案
- 重新启动Visual Studio
- 打开项目
- 清洁解决方案
- 重建解决方案
- 关闭解决方案
- 重新打开该项目
当我意外地在解决方案中包含的类库中安装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中
简答:
- 将包含解决方案的目录移动到桌面
要么
- 删除对故障库的引用(在“参考”部分中)
- 关闭Visual Studio
- 在Windows资源管理器中转到应用程序的项目目录(“Projectname”.sln文件所在的位置)。
- 取消隐藏隐藏物品(查看选项卡;检查隐藏物品)
- 删除“vs”隐藏文件夹,如果有名为“sou”的文件也删除。
- 重新启动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客户端需要)
通过禁用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代码中出现语法错误的错误信息! 在任何其他语言中,我都希望知道错误是什么,所以我可以在几秒钟内修复它。 但这花了我几个小时 – 虽然下次我知道该怎么做。