为了证明这个问题,我构建了由VS生成的简单的MAUIApp示例,作为一个新的解决方案。在部署到本地iOS设备之前,VS首先运行一个对话框来初始化HotRestart,这需要一个dev ID。完成对话后,VS宣布对话成功完成。但是,当使用runToCursor部署时,应用程序看起来可以正常加载和启动,但随后终止时会显示以下内容:
Xamarin.PreBuilt.iOS[15710:10021051]无法解析程序集Microsoft.VisualStudio.DesignTools.TapContract,Version=17.0.0.0,Culture=neutral,PublicKeyToken=null。
详细信息:未能加载文件或程序集“/var/mobile/Containers/Data/Application/807E989C-ABE6-4FCF-9209-87C69B0B93C9/Documents/MAUIApp.content/Microsoft.VisualStudio.DesignTools.TapContract.dll”或其依赖项之一。
Xamarin.PreBuilt.iOS[15710:10021051]无法解析程序集Xamarin.HotReload.Contracts,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null。
详细信息:未能加载文件或程序集“/var/mobile/Containers/Data/Application/807 E989 C-ABE 6 - 4FCF-9209 - 87C69B0B93C9/Documents/MAUIApp.content/Xamarin.HotReload.Contracts.dll”或它的某一个依赖项。
VS在Windows Stable上完全是最新的。我所能想到的是,iPhone有一些auth/dev步骤,导致HotRestart对话框认为它已经完成,但权限以某种未知的方式不完整。不知道下一步该怎么办。欢迎任何想法
1条答案
按热度按时间41zrol4v1#
好吧,找到答案了。如果您在第一个XAML页面完全显示之前在任何地方设置断点/ runToCursor,则应用程序将以上述神秘方式终止,可能是因为HotReload正在等待某些内容(“XAML HotReload Initializing”),它超时是因为您处于断点,并终止应用程序(“XAML HotReload Stopped”)。
我所说的“完全显示”是指即使断点是在一个覆盖OnAppearing()函数中设置的,在
base.OnAppearing(),
这使得很难调试应用程序本身的init代码。即使代码设置得越早越好--例如在AppDelegate设置之前在Main()中设置-- HotReload仍然会在超时后终止。