【发布时间】:2021-03-13 17:54:01
【问题描述】:
我开发了一个 xamarin 应用程序,但在调试 Visual Studio 2019 时出现此错误“找不到文件 obj\Debug\100\android\assets\Xamarin.Auth.dll.mdb”。它发生在 VS 更新 16.9 之后。 1.如果我在发布版本中构建应用程序,则没有问题。
【问题讨论】:
标签: c# xamarin visual-studio-2019
我开发了一个 xamarin 应用程序,但在调试 Visual Studio 2019 时出现此错误“找不到文件 obj\Debug\100\android\assets\Xamarin.Auth.dll.mdb”。它发生在 VS 更新 16.9 之后。 1.如果我在发布版本中构建应用程序,则没有问题。
【问题讨论】:
标签: c# xamarin visual-studio-2019
在 16.9.1 更新后,我遇到了完全相同的问题。经过很多挫折并尝试了我能想到的一切,包括其他答案中的建议,我发现这实际上是 VS 16.9.1 附带的 Xamarin.Android 11.2.0.21 引入的一个已知问题。
问题似乎是由快速部署的更新引起的,该更新需要 .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 的副本并将其重命名。它不能解决根本问题,但至少我能够调试。不知道这是否有任何副作用,但到目前为止一切都很好......
【讨论】: