Xamal

时间:2015-05-08 06:22:23

标签: visual-studio error-handling xamarin xamarin.forms

当我尝试在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包之前,我的应用程序正在运行,但是我已经添加了这个突然应用程序停止运行并出现错误。

任何人都可以帮助我解决导致此类问题的原因吗?

9 个答案:

答案 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" />

(您不能在此处使用字符<,而应使用&lt;。)

或两个具有相同名称的属性:

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

答案 8 :(得分:-1)

  1. 将所有软件包更新为最新版本,包括xamarin形式。
  2. 关闭与
  3. 清洁溶液
  4. 重建解决方案。

这些步骤可能会解决问题,