找不到文件 obj\Debug\100\android\assets\Xamarin.Auth.dll.mdb'

问题描述

我开发了一个 xamarin 应用程序,在调试 Visual Studio 2019 时遇到了这个错误“找不到文件 obj\Debug\100\android\assets\Xamarin.Auth.dll.mdb”。它发生在 VS 更新 16.9 之后。 1.如果我在发布版本中构建应用程序,则没有问题。

解决方法

我在 16.9.1 更新后遇到了完全相同的问题。在经历了很多挫折并尝试了所有我能想到的包括其他答案中的建议之后,我发现这实际上是 Xamarin.Android 11.2.0.21 引入的一个已知问题,它随 VS 16.9.1 一起提供。

该问题似乎是由快速部署的更新引起的,该更新需要 .mdb 调试文件而不是 Android 项目的旧 .pdb 符号。

要修复,您需要更新任何仍使用旧 pdb 符号文件的 NuGet 包,希望它们已更改为使用 mdb 调试文件。就我而言,这是不可能的,因此解决方法是将以下几行添加到您的 Android csproj 的 </Project> 标记上方:

<Target Name="_RemoveMdbFiles" BeforeTargets="_Upload">
<ItemGroup>
    <_Temp Include="%(_ResolvedSymbols.Identity)" Condition="'%(_ResolvedSymbols.Extension)' == '.mdb'" />
    <_ResolvedSymbols Remove="@(_Temp)"/>
</ItemGroup>

如果此解决方法也不适合您,我认为唯一的其他解决方案是降级到 VS 16.8.x。

编辑:似乎已在 VS 16.9.2 更新中修复。

来源: https://docs.microsoft.com/en-us/xamarin/android/release-notes/11/11.2#known-issue-fast-deployment-and-mdb-files
https://github.com/xamarin/xamarin-android/issues/5631#issuecomment-794289675

,

一种解决方法是创建一个名为 Xamarin.Auth.dll.mdb 的文件。我刚刚创建了 Xamarin.Auth.dll 的副本并将其重命名。它没有解决根本问题,但至少我能够调试。不确定这是否有任何副作用,但到目前为止还不错...