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

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

Сообщение Anonymous »

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

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

Exe
net9.0
x86

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

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

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) → программа запускается нормально, но вызов взаимодействия терпит неудачу с:

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

Unhandled exception. System.BadImageFormatException:
An attempt was made to load a program with an incorrect format. (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 VM.
Что может вызвать такую разницу между моей локальной машиной и виртуальной машиной?

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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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