Необработанное исключение. System.BadImageFormatException: не удалось загрузить
файл или сборку «/app/MetaQuotes.MT5ManagerAPI64.dll». Была
предпринята попытка загрузить программу неправильного формата. Имя файла:
'/app/MetaQuotes.MT5ManagerAPI64.dll'
DLL — это собственная библиотека, предоставляемая MetaQuotes, в частности MetaQuotes.MT5ManagerAPI64. .dll.
Мое приложение работает правильно на моем локальном компьютере (Windows), но не работает при запуске внутри контейнера Docker.
Я подозреваю, что проблема в связано с несоответствием архитектуры.
Код: Выделить всё
# Base image for running the application
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
# Build stage
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY MyProject/MyApp/MyApp.csproj MyApp/
COPY MyProject/MyAuth/MyAuth.csproj MyAuth/
COPY MyProject/MyModels/MyModels.csproj MyModels/
COPY MyProject/ExternalLibraries/MyNativeLibrary/ ExternalLibraries/MyNativeLibrary/
RUN dotnet restore "MyApp/MyApp.csproj"
COPY MyProject/ .
WORKDIR "/src/MyApp"
RUN dotnet build "MyApp.csproj" -c $BUILD_CONFIGURATION -o /app/build -p:PlatformTarget=x64
RUN dotnet publish "MyApp.csproj" -c $BUILD_CONFIGURATION -o /app/publish -p:PlatformTarget=x64 /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
COPY MyProject/ExternalLibraries/MyNativeLibrary/ ExternalLibraries/MyNativeLibrary/
ENTRYPOINT ["dotnet", "MyApp.dll"]
Код: Выделить всё
x64 net8.0
Я ожидал, что приложение запустится внутри контейнера Docker, не вызывая исключения System.BadImageFormatException, и успешно загрузит MyNativeLibrary64.dll< /code> во время инициализации.
Однако, несмотря на эти шаги, ошибка сохраняется. Мне нужно руководство о том, что может отсутствовать или быть неправильно настроено, чтобы решить эту проблему.
Подробнее здесь: https://stackoverflow.com/questions/792 ... -net-8-doc
Мобильная версия