当我尝试在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包之前,我的应用程序正在运行,但是我已经添加了这个突然应用程序停止运行并出现错误。
任何人都可以帮助我解决导致此类问题的原因吗?
答案 0 :(得分:49)
如果您的Xamarin.Form版本与您安装的NuGet软件包不兼容/匹配,则会出现此问题。
所以,我刚刚为xx.Droid和PCL更新了Xamarin.Forms,并使用NuGet包匹配依赖项。
现在工作正常。希望这对你有用。
答案 1 :(得分:19)
删除旧包/[your project root]/packages/Xamarin.Forms.[old version number]
。
答案 2 :(得分:4)
我从所有项目中删除了所有Xamarin引用,删除了所有Xamaring包。在PROJ文件中删除了所有提到的Xamarin,并为Xamarin读取了所有nuget包。 (对此失去了几天):))
答案 3 :(得分:4)
如果您不小心遇到语法错误(例如我的情况),也可能会出现这种问题:ListView中存在两个文本单元格-
<ListView x:Name="ProductsView">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding ProductId}" />
<TextCell Text="{Binding ProductDescription}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我浏览了该问题的其他帖子,发现由于存在语法错误而发生了相同的问题,而VS不会直接报告该错误。因此,请查找此内容,否则,请重新安装兼容版本的xamarin.forms
->干净解决方案->通过重新打开VS进行重建。
答案 4 :(得分:0)
将Xamarin.Forms更新到android和iOS项目的最新版本并重新打开该项目为我工作。
答案 5 :(得分:0)
我在Xamarin.Mac
中的Visual Studio for Mac
收到此错误。我是unloded
项目Xamarin.Mac
。然后将其从solution
中删除。最后从解决方案文件夹中删除xamarin.Mac
文件夹。 Atlast deleted
解决方案文件夹中的packages
文件夹。从nuget packages
项目中删除所有xamarin forms
。
现在我再次将nuget packages
添加到xamarin表单项目中。将Xamarin.Mac
项目添加到解决方案并进行必要的modifications
。这导致成功build
。虽然我的问题是xamarin.mac
,但此过程可能会解决其他projects
的问题。
答案 6 :(得分:0)
当我们在Xamarin.Forms中添加ContentPage页面时。在该页面中,我们在同一页面中添加了多个ContentPage.Content。然后我们也得到这种类型的错误。
答案 7 :(得分:0)
如果XAML文件中存在XML错误,也可能会发生这种情况。示例:
<Label Text="<- go back" />
(您不能在此处使用字符<
,而应使用<
。)
或两个具有相同名称的属性:
<Label Text="someText" HorizontalOptions="Center" Text="someText" />
答案 8 :(得分:-1)
这些步骤可能会解决问题,