Есть dll изначально собранная под архитектуру ARM64 для работы в macOS на Apple Silicon.
Необходимо поправить код в dll.
Делаю это через dnSpy.
При сохранении dll даже не измененного, с дефолтными параметрами, которые, предлагает dnSpy - появляется ошибка dnlib.DotNet.Writer.ModuleWriterException: Invalid section RVA
Произошло исключение dnlib.DotNet.Writer.ModuleWriterException: Invalid section RVA
at dnlib.DotNet.Writer.NativeModuleWriter.WriteFile()
at dnlib.DotNet.Writer.NativeModuleWriter.Write()
at dnlib.DotNet.Writer.NativeModuleWriter.WriteImpl()
at dnlib.DotNet.Writer.ModuleWriterBase.Write(Stream dest)
at dnlib.DotNet.Writer.ModuleWriterBase.Write(String fileName)
at dnlib.DotNet.ModuleDefMD.NativeWrite(String filename, NativeModuleWriterOptions options)
at dnSpy.AsmEditor.SaveModule.ModuleSaver.Save(SaveModuleOptionsVM vm) in D:\a\dnSpy\dnSpy\Extensions\dnSpy.AsmEditor\SaveModule\ModuleSaver.cs:line 187
at dnSpy.AsmEditor.SaveModule.ModuleSaver.SaveAll() in D:\a\dnSpy\dnSpy\Extensions\dnSpy.AsmEditor\SaveModule\ModuleSaver.cs:line 151
at dnSpy.AsmEditor.SaveModule.SaveMultiModuleVM.SaveAsync(SaveOptionsVM[] mods) in D:\a\dnSpy\dnSpy\Extensions\dnSpy.AsmEditor\SaveModule\SaveMultiModuleVM.cs:line 250
А dnSpy предлагает собирать для arm64 Apple Silicon
Сохраняю это все дело в Windows 10 на процессоре AMD. с dnSpy 6.5.0
Подозреваю, что проблему можно победить правильно подобрав параметры компиляции/сборки, чтобы они были максимально приближены к оригиналу.
Как узнать оригинальные параметры компиляции/сборки dll?
Вот пример такого файла -
скачать