xamarin 的 "XamlCTask" 任务在 visual studio 上意外失败

The "XamlCTask" task failed unexpectedly on visual studio for xamarin

当我尝试在 visual studio 上的 Xamarin 上 运行 应用程序时,出现如下所述的错误并且无法 运行 设备或​​模拟器上的应用程序:

The "XamlCTask" task failed unexpectedly.
Microsoft.Cci.Pdb.PdbDebugException: Unknown custom metadata item kind: 6
   at Microsoft.Cci.Pdb.PdbFunction.ReadCustomMetadata(BitAccess bits)
   at Microsoft.Cci.Pdb.PdbFunction..ctor(ManProcSym proc, BitAccess bits)
   at Microsoft.Cci.Pdb.PdbFunction.LoadManagedFunctions(BitAccess bits, UInt32 limit, Boolean readStrings)
   at Microsoft.Cci.Pdb.PdbFile.LoadFuncsFromDbiModule(BitAccess bits, DbiModuleInfo info, IntHashTable names, ArrayList funcList, Boolean readStrings, MsfDirectory dir, Dictionary`2 nameIndex, PdbReader reader)
   at Microsoft.Cci.Pdb.PdbFile.LoadFunctions(Stream read, Dictionary`2& tokenToSourceMapping, String& sourceServerData)
   at Mono.Cecil.Pdb.PdbReader.PopulateFunctions()
   at Mono.Cecil.Pdb.PdbReader.ProcessDebugHeader(ImageDebugDirectory directory, Byte[] header)
   at Mono.Cecil.ModuleDefinition.ProcessDebugHeader()
   at Mono.Cecil.ModuleDefinition.ReadSymbols(ISymbolReader reader)
   at Mono.Cecil.ModuleReader.ReadSymbols(ModuleDefinition module, ReaderParameters parameters)
   at Mono.Cecil.ModuleReader.CreateModuleFrom(Image image, ReaderParameters parameters)
   at Mono.Cecil.ModuleDefinition.ReadModule(Stream stream, ReaderParameters parameters)
   at Mono.Cecil.ModuleDefinition.ReadModule(String fileName, ReaderParameters parameters)
   at Xamarin.Forms.Build.Tasks.XamlCTask.Compile()
   at Xamarin.Forms.Build.Tasks.XamlCTask.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__1.MoveNext()  MyFirstProject      

在添加此 "Xamarin.Forms.Maps" NuGet 包之前,我的应用程序正在运行,但当我添加此应用程序时突然停止 运行ning 并出现错误。

任何人都可以帮助我是什么导致了这种类型的问题?

如果您的 Xamarin.Form 版本不是 compatible/matching 您安装的 NuGet 包,就会出现此问题。

所以,我刚刚更新了 xx.Droid 和 PCL 的 Xamarin.Forms,并使依赖关系与 NuGet 包相匹配。

现在一切正常。希望这对你有用。

我从所有项目中删除了所有 Xamarin 引用,删除了所有 Xamaring 包。删除了 PROJ 文件中所有提及 Xamarin 的内容,并为 Xamarin 重新添加了所有 nuget 包。 (为此浪费了几天):)

删除你的旧包/[your project root]/packages/Xamarin.Forms.[old version number]

将 Xamarin.Forms 更新到 android 和 iOS 项目的最新版本并重新打开项目对我有用。

我在 Visual Studio for Mac 中遇到 Xamarin.Mac 的错误。我 unloded Xamarin.Mac 项目。比从 solution 中删除它。最后从解决方案文件夹中删除 xamarin.Mac 文件夹。 Atlas deleted 解决方案文件夹中的 packages 文件夹。从 xamarin forms 项目中删除所有 nuget packages。 现在我再次将 nuget packages 添加到 xamarin 表单项目。将 Xamarin.Mac 项目添加到解决方案中,并使 modifications 变得必要。这导致成功 build。虽然我的问题是 xamarin.mac 这个过程也可能解决其他 projects 的问题。

当我们在 Xamarin.Forms 中添加 ContentPage 页面时。在该页面中,我们在同一页面中添加了不止一个 ContentPage.Content。然后我们也会得到这种类型的错误。

如果您不小心遇到任何语法错误,也可能会出现这种问题,例如我的情况:ListView 中存在两个文本单元格 -

<ListView x:Name="ProductsView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding ProductId}" />
            <TextCell Text="{Binding ProductDescription}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我浏览了有关此问题的其他帖子,发现由于存在语法错误而出现了同样的问题,而 VS 不会直接报告这些错误。所以寻找这个,否则,重新安装xamarin.forms的兼容版本->清理解决方案->通过重新打开VS重建。

如果您的 XAML 文件中有 XML 个错误,也可能会发生这种情况。示例:

<Label Text="<- go back" />

(您不能在那里使用字符 <,请改用 &lt;。)

或两个同名属性:

<Label Text="someText" HorizontalOptions="Center" Text="someText" />