首页 > 解决方案 > 错误 MSB4062:无法从程序集中加载“Xamarin.Forms.Build.Tasks.GetTasksAbi”任务

问题描述

将包“Xamarin.Forms”和“Xamarin.Forms.Maps”更新到最新版本即“3.0.0.446417”后,项目将不再构建,我收到此错误:

    C:\Users\[MyUser]\.nuget\packages\xamarin.forms\3.0.0.446417\build\netstandard2.0\Xamarin.Forms.targets(35,3):
error MSB4062: The "Xamarin.Forms.Build.Tasks.GetTasksAbi" task could not be loaded from the assembly
C:\Users\[MyUser]\.nuget\packages\xamarin.forms\3.0.0.446417\build\netstandard2.0\Xamarin.Forms.Build.Tasks.dll.
Could not load file or assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies.
The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

错误是指文件Xamarin.Forms.Targets的这个位置:

<XamlGTask
    XamlFiles="@(EmbeddedResource)" Condition="'%(Extension)' == '.xaml' AND '$(DefaultLanguageSourceExtension)' == '.cs'"
    Language = "$(Language)"
    AssemblyName = "$(AssemblyName)"
    OutputPath = "$(IntermediateOutputPath)">
    <Output ItemName="FilesWrite" TaskParameter="GeneratedCodeFiles" />
    <Output ItemName="Compile" TaskParameter="GeneratedCodeFiles" />
</XamlGTask>

XamlGTask 带有下划线的警告,上面写着:

Task 'XamlGTask' is not defined

到目前为止我所做的是清理整个解决方案,删除 obj/bin 文件夹并从包管理器设置中清除所有 Nuget 缓存,但它们都没有帮助。

标签: visual-studioxamarinxamarin.formsnuget

解决方案


错误 MSB4062:无法从程序集中加载“Xamarin.Forms.Build.Tasks.GetTasksAbi”任务

要解决此问题,您绝对应该确保所有项目都引用相同版本的包 Xamarin.Forms

在您Solution Explorer的解决方案节点上单击鼠标右键并选择Manage NuGet Packages for solution.... 选择Consolidate选项卡并单击Xamarin.FormsNuGet 包,确认所有项目使用相同的版本。如果没有,请将所有更新到相同的版本。

此外,有人说安装 .NET Framework 4.7.1 将有助于解决此问题,您可以检查它是否有帮助。

认证:https ://forums.xamarin.com/discussion/comment/324869#Comment_324869

注意:如果您无法成功安装 .net framework 4.7.1,请尝试将您的 Windows 10 更新到最新版本。谢谢@Vahid。

希望这可以帮助。


推荐阅读