我有一个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.<ExecuteInstantiatedTask>d__26.MoveNext() BoxApi.V2 (Android)
此解决方案中包含的所有项目都会重复此错误。所以我多次收到此错误。
我还想补充说,该项目以前是在MAC上构建的,而我正在使用Windows,这是否会产生一些兼容性或跨操作系统问题?我已检查所有装配参考,所有工作正常。
我确实在Visual Studio 2017中使用了全新的Xamarin.Forms应用程序。
根本原因似乎是我让VS2017在它的默认位置'C:\ Users \ Dave \ Documents \ Visual Studio 2017 \ Projects'中创建项目,这导致一个或多个文件现在有一个太长的路径。
我将解决方案移动到我的D驱动器的根目录,它构建没有任何问题。
我得到了同样的错误,我通常通过关闭所有其他打开的xamarin解决方案解决这个问题,还有一种方法我解决了这个问题 - >转到taskmanager找到MSBUILD服务并结束该服务 - >清理你的解决方案 - >重建
我们也遇到过这种情况,在构建多个项目和非常深/复杂的依赖树时,它似乎是某种类型的竞争条件(我们的示例有超过100个项目)。
我们能够解决此问题(除了不断重建)之外的唯一方法是禁用Visual Studio 2017的并行构建能力(工具 - >选项 - >项目和解决方案 - >构建和运行 - >“1”最大并行项目数编译)。
问题似乎出现在ResolveLibraryProjectImports.cs(https://github.com/xamarin/xamarin-android/blob/93ddf96f86710ad848d5189858567dd7fe964579/src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs)中,很可能存在竞争条件,其逻辑是缩短文件名。
围绕这个零测试,这意味着很可能有一些狡猾的代码。
我将尝试挖掘更多并在GitHub上打开一个问题,但找到一个可靠的回购可能会非常困难。
这对我有用:
希望这可以帮助。
还有问题吗?检查命名空间和xaml代码。有时,当您复制/粘贴某些文件时,可能会出现问题。
这可能是您的参考/参考组件的问题?
如果查看解决方案资源管理器中每个项目的references文件夹下的内容,则visual studio无法找到,删除并重新添加它们的任何引用(右键单击要添加的引用文件夹)。
我已经面对这个问题一千次这实际上是一个非常简单的事情,当你创建一个新项目时,visual studio在C:Drive中创建它在默认文件夹中你所要做的就是将你的项目移出其他的Drive Like D :, E:无论如何确保将其保留在驱动器的根目录中,即如果您将其移动到D中:然后将其放置在D / Project / solutionFile中
简答:
要么
我正面临与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:/”之类的其他位置,或者更改项目名称以获得更简短的内容
我也有这个错误。在我的情况下,它伴随着Xamarin.Forms.Maps
没有正确导入到xaml.g.cs
文件之一。我把所有的使用陈述都正确了。 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
这就是我得到错误的方式。在StackLayout中,我输入了Padding属性,并用空格而不是逗号分隔4位数。为了找到错误,我必须单独注释掉XAML控件并重建以隔离错误的位置,最终我找到了问题行。所以基本上这是我在XAML代码中出现语法错误的错误信息!在任何其他语言中,我都希望知道错误是什么,所以我可以在几秒钟内修复它。但这花了我几个小时 - 虽然下次我知道该怎么做。
如果错误地你有任何语法错误,就像我的情况一样,这种问题也可能出现:ListView中存在两个文本单元格 -
<ListView x:Name="ProductsView">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding ProductId}" />
<TextCell Text="{Binding ProductDescription}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我查看了此问题的其他帖子,发现由于语法错误的存在而发生了同样的问题,VS没有直接报告。所以寻找这个,否则,重新安装兼容版本的xamarin.forms - >清洁解决方案 - >通过重新打开VS重建。
我今天遇到了同样的问题。经过两天的搜索,我找到了解决方案here。问题是Xamarin.Forms库在首次通过从Visual Studio 2017中选择跨平台Mobile(Xamarin.Forms)项目模板创建项目时不安装其所有依赖的Nuget包。我必须手动安装升级的从属nuget包来构建项目成功。还删除并添加了Xamarin.Forms,最终解决了这个问题。
此外,在运行两个Visual Studio 2017实例时,创建问题需要一段时间,请确保只有一个实例运行,因为我也遇到过此问题。
xmlns:maps="clr-namespace:Xamarin.Forms.Maps; assembly=Xamarin.Forms.Maps"
问题是由于上面的分号和如上所述的组件之间的空间。一旦差距被关闭,它就会编译。
有同样的问题。这是我的解决方案
我正在使用XAML(.xaml)和代码隐藏文件(.xaml.cs)。我的问题是我有相同的页面名称,但在不同的名称空间下。 XAML和代码隐藏文件不匹配在一起。所以最后这是我的XAML的一个问题,因为它当然找不到view元素。
好吧,问题出在我的xaml文件中......
不知何故,在设置布局边界时,我使用'。'作为分隔符而不是','
e.g
AbsoluteLayout.LayoutBounds="0.5.0.3,1,0.3"
应该是AbsoluteLayout.LayoutBounds="0.5,0.3,1,0.3"
因此改变'。' '','解决了这个问题
当我意外地在解决方案中包含的类库中安装nuget包时,这发生在我身上。我只需要从类库项目中卸载软件包。
就我而言,这个问题伴随着另一个与我的xaml有关。 为了让这个错误消失,我必须解决第二个问题。我使用新的默认内容清理该类,然后清理所有项目和解决方案。最后,关闭视觉工作室,打开它,运行项目,它的工作知道.-。
这仍然是一个新问题,在我想尝试将代码转移到更短路径的所有尝试之后 - 然而由于svn管理将变得复杂,这是很多工作,所以我想首先验证路径是否真的是一个问题,一个这样做的方法是检查android SDK的存储位置。我在Mac上并且调查显示SDKs路径比我的项目路径长。另外,我尝试了一个新项目,这是正确的编译。
所以我放弃了转移的想法。相反,我使用svn并比较自上次正确构建以来发生的变化。
比较显示droid的项目文件在某种程度上是指iOS的项目文件,它似乎是Visual Studio的一些bug。所以我恢复了变化,而且都恢复了正常。