“ResolveLibraryProjectImports”任务意外失败

32
我有一个基于MvvmCross的Xamarin项目,适用于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.<ExecuteInstantiatedTask>d__26.MoveNext() BoxApi.V2 (Android)

这个错误在解决方案中包含的所有项目中都重复出现。因此,我会多次遇到这个错误。

我还想补充一点,这个项目之前是在MAC上构建的,而我现在使用的是Windows,这会导致某些兼容性或跨操作系统问题吗? 我已经检查了所有程序集引用,都正常工作。


您安装了哪些版本的Visual Studio for Xamarin、Xamarin.Android和Android SDK? - Luke Pothier
Xamarin是最新版本,我已经下载了所有SDK版本。 - Zaeem Sattar
你可以尝试卸载并重新安装受影响的NuGet包,例如RestSharp。 - Plac3Hold3r
构建完成后,您的Android项目的bin/Debug目录中是否有RestSharp.dll?如果没有,那就是问题所在。 - Luke Pothier
dll已经存在,并且它的程序集引用也已添加到项目中。 - Zaeem Sattar
显示剩余5条评论
25个回答

0

这就是我遇到的错误。在StackLayout中,我设置了Padding属性,并且我用空格而不是逗号分隔了四个数字。 为了找到错误,我不得不逐个注释XAML控件并重建以隔离错误的位置,最终我找到了问题所在的行。 所以基本上,这就是我在XAML代码中遇到的语法错误消息! 在任何其他语言中,我都希望能够知道错误的具体信息,以便可以在几秒钟内修复它。但这次花了我几个小时 - 不过下次我知道该怎么办了。


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

0

问题在于:

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

尝试将您的项目移动到另一个位置,如“C:/”,或更改项目名称为更简短的名称。


0

今天我也遇到了同样的问题。经过两天的搜索,我在这里找到了解决方案。问题是Xamarin.Forms库在首次使用Visual Studio 2017中的跨平台移动(Xamarin.Forms)项目模板创建项目时未安装所有依赖的Nuget包。我必须手动安装升级的依赖nuget包才能成功构建项目。同时,在最后删除并添加Xamarin.Forms也可以解决问题。

此外,当两个Visual Studio 2017实例同时运行时,有时会出现问题,请确保只有一个实例正在运行,因为我也遇到了这个问题。


0
这种问题可能也会出现,如果您不小心有任何语法错误,就像在我的情况下一样:ListView 中存在两个文本单元格。
<ListView x:Name="ProductsView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding ProductId}" />
            <TextCell Text="{Binding ProductDescription}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我查看了其他关于这个问题的帖子,发现同样的问题是由于语法错误导致的,而VS并没有直接报告。所以请检查一下语法错误,否则重新安装兼容版本的xamarin.forms -> 清理解决方案 -> 重新打开VS进行重建。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接