Взаимодействие .NET 9 x86 BadImageFormatException на виртуальной машине Azure, но отлично работает локальноC#

Место общения программистов C#
Anonymous
Взаимодействие .NET 9 x86 BadImageFormatException на виртуальной машине Azure, но отлично работает локально

Сообщение Anonymous »

У меня есть консольное приложение .NET 9, созданное для x86:

Код: Выделить всё

Exe
net9.0
x86

Он вызывает собственную DLL через взаимодействие:

Код: Выделить всё

[DllImport("WxTide2.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int GetTides(
StringBuilder path,
StringBuilder location,
long date,
ref IntPtr tides,
ref IntPtr ephemeride);
Собственная DLL (

Код: Выделить всё

WxTide2.dll
) подтверждено как 32-разрядное (x86).
Поведение
На моем локальном компьютере с Windows 11 x64 оно работает отлично.
На моей виртуальной машине Azure (Windows 11 x64) программа запускается нормально, но вызов взаимодействия завершается с ошибкой:

Необработанное исключение. System.BadImageFormatException:
Предпринята попытка загрузить программу в неправильном формате. (0x8007000B)

Что я уже проверил
  • Установил среду выполнения .NET 9 x86, подтверждено через:

    Код: Выделить всё

      Microsoft.NETCore.App 9.0.10 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
    
  • Попробовал запустить через C:\Windows\SysWOW64\cmd.exe
  • Проверил, что DLL находится в той же папке, что и EXE
  • Проверено с помощью dumpbin → DLL действительно есть x86
Проблема
Даже несмотря на все это, вызов взаимодействия по-прежнему завершается сбоем только на виртуальной машине Azure.
Что может вызвать такую разницу между моей локальной машиной и виртуальной машиной?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ne-locally

Вернуться в «C#»