为了上下文,我在 Visual Studio 中打开了我们项目的其他开发者 GitHub 分支。当我将项目启动选项设置为 iOS 并尝试运行它时,我收到了如下所示的错误。我正在插入手机,并成功完成了热重载设置步骤(链接开发者帐户等)。运行android项目时不会出现这个错误。
Severity Code Description Project File Line Suppression State Details
Error The "UnpackFrameworks" task failed unexpectedly.
System.BadImageFormatException: Format of the executable (.exe) or library (.dll) is invalid.
at Mono.Cecil.PE.ImageReader.ReadOptionalHeaders(UInt16& subsystem, UInt16& dll_characteristics) in C:\src\cecil\Mono.Cecil.PE\ImageReader.cs:line 197
at Mono.Cecil.PE.ImageReader.ReadImage() in C:\src\cecil\Mono.Cecil.PE\ImageReader.cs:line 86
at Mono.Cecil.PE.ImageReader.ReadImage(Disposable`1 stream, String file_name) in C:\src\cecil\Mono.Cecil.PE\ImageReader.cs:line 765
at Mono.Cecil.ModuleDefinition.ReadModule(String fileName, ReaderParameters parameters) in C:\src\cecil\Mono.Cecil\ModuleDefinition.cs:line 1113
at Xamarin.iOS.HotRestart.Tasks.UnpackFrameworks.Execute() in /Users/builder/azdo/_work/1/s/xamarin-macios/msbuild/Xamarin.iOS.Tasks.Windows/Tasks/UnpackHotRestartFrameworks.cs:line 35
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() StartUpz8.iOS
我已经尝试通过重建项目、检查包是否更新、搜索有问题的文件等进行调试,但没有任何效果。
这是 Github 上的一个已知问题,您可以通过编辑 Xamarin.iOS.HotRestart.targets 文件来尝试解决方案。
搜索 UnpackFrameworks 节点并添加
ContinueOnError="true"
。
<UnpackFrameworks ContinueOnError="true"
ReferencedAssemblies="@(AssembliesWithFrameworks)"
IntermediateOutputPath="$(DeviceSpecificIntermediateOutputPath)">
<Output TaskParameter="Frameworks" ItemName="_UnpackedFramework" />
</UnpackFrameworks>