Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B) Что делать, если при нажатии кнопки «Визуализировать», выдает эту ошибку, на строке: Glut.glutSolidCube(32);
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Tao.OpenGl; using Tao.FreeGlut; using Tao.Platform.Windows; namespace TaoProg < public partial class Form1 : Form < public Form1() < InitializeComponent(); AnT.InitializeContexts(); >private void Form1_Load(object sender, EventArgs e) < // инициализация Glut Glut.glutInit(); Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH); // очитка окна Gl.glClearColor(255, 255, 255, 1); // установка порта вывода в соотвествии с размерами элемента anT Gl.glViewport(0, 0, AnT.Width, AnT.Height); // настройка проекции Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity(); Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); // настройка параметров OpenGL для визуализации Gl.glEnable(Gl.GL_DEPTH_TEST); >private void button2_Click(object sender, EventArgs e) < Application.Exit(); >private void button1_Click(object sender, EventArgs e) < Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glLoadIdentity(); Gl.glColor3f(1.0f, 0,0); Gl.glPushMatrix(); Gl.glTranslated(0, 0, -6); Gl.glRotated(45, 1, 1, 0); //рисуем куб с помощью библиотеки FreeGLUT Glut.glutSolidCube(32); Gl.glPopMatrix(); Gl.glFlush(); AnT.Invalidate(); >> >
Код к задаче: «Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)»
Листинг программы
МЫ ПОНИМАЛИ TERRARIA НЕ ТАК!
Источник: studassistent.ru
Не удалось загрузить файл или сборку . была сделана попытка загрузить программу, имеющую неверный формат (система.Исключение badimageformatexception)
у меня есть два проекта, ProjectA и ProjectB . ProjectB есть консольное приложение, которое зависит от ProjectA . Вчера все работало нормально, но вдруг сегодня, когда я бегу ProjectB Я понимаю:
BadImageFormatException был необработанным:
Не удалось загрузить файл или сборку «ProjectA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null» или одну из ее зависимостей. Была сделана попытка загрузить программу, имеющую неверный формат.
оба являются обычными проектами, без каких-либо зависимостей от других non-.Net проекты. Оба полностью .Net — нет собственного кода и нет P / Invoke. У меня есть другие проекты, которые зависят от ProjectA и все еще работают просто отлично.
вещи, которые я пробовал:
Террария решаем ошибки | Terraria error
- убедитесь, что оба проекта настроены на «любой процессор» с помощью построить проверено. Они.
- убедитесь, что оба проекта предназначены для одной цели Рамки (Профиль Клиента .Net 4.0).
- в разделе ProjectB —> ссылки —> ProjectA — > свойства, убедитесь, что «Копировать Локально» установлено значение «правда» _ (я проверил этот проект.dll копируется правильно)
- очистить/перестроить решение. Я даже попытался вручную удалить папки /bin и /obj в обоих проектах.
- Перезапустите Visual Studio. Перезагрузить компьютер.
- проверить совершенно новая копия хранилища.
но я все еще получаю ту же ошибку. Я понятия не имею, что я сделал, чтобы вызвать это, и как это исправить. Есть идеи?
автор: BlueRaja — Danny Pflughoeft
21 ответов
Я уверен, что у вас 32-разрядная / 64-разрядная конфликта. Похоже, что ваш основной проект может быть установлен в 32-разрядный, А класс, на который он ссылается, — в 64-разрядный. Попробуйте посмотреть на это так вопрос и и это тоже. Между ними двумя, Вы должны быть в состоянии понять свою проблему.
автор: Icemanind
возможно, вы столкнулись с проблемой с вашим сайтом после развертывания на сервере.
затем вам нужно настроить пул приложений для включения 32-разрядных приложений.
- открыть Диспетчер IIS
- нажмите на пулы приложений
- выберите пул приложений, который вы используете
- на правой панели выберите Дополнительные параметры.
- Set включить 32-разрядные приложения для Правда
автор: Ali Adravi
У меня только что было это сообщение об ошибке с IIS Express в Visual Studio 2015. В моем случае мне нужно было запустить 64-разрядную версию IIS Express:
Инструменты — > Параметры — > проекты и решения — > веб-проекты
Установить флажок это говорит: «используйте 64-разрядную версию IIS Express для веб-сайтов и проекты.»
У меня была такая же проблема. Я установил «цель платформы» проекта A («проект A»(щелкните правой кнопкой мыши)->Свойства->сборка->» цель платформы») в x86, но сохранил проект B в»любом процессоре». Задание проекта » Б » на «x86» это исправил.
У меня была эта проблема с запуском модульных тестов (xunit) в Visual Studio 2015 и наткнулся на следующее исправление:
Menu Bar -> Test -> Test Settings -> Default Processor Architecture -> X64
автор: mkaj
возможно, Вам придется изменить Приложение, Бассейн настройка «Enable 32bit Applications» на TRUE в IIS7, если у вас есть по крайней мере 1 32bit dllexe в вашем проекте.
автор: fergal303
У меня была такая же проблема с несколькими проектами в одном решении, я закончил установку всех целевых фреймворков в .NET Framework 4 и x86 для целевого процессора, и он, наконец, успешно скомпилирован.
автор: Flood Techs
вы также можете увидеть эту проблему, если вы пытаетесь упаковать 64-битный проект с установщиком MSI в VS. («Причина в том, что родная прокладка упакована с помощью .MSI-файл представляет собой 32-разрядный исполняемый файл.»)
ни одно из этих решений не сработало для меня, но, удалив содержимое папок bin и obj, все снова стало круто.
автор: saille
Я получил это при создании проекта через Visual Studio Online (VSTS) Build с помощью Visual Studio Build действия.
- удалить существующую исходную папку
- явно установите «любой процессор» в платформе для всех сборок Visual Studio, включая зависимости (см. снимок экрана ниже).
- повторно запустите сборку
автор: HockeyJ
Я столкнулся с такой же проблемой. Он выскочил из ниоткуда, и это показалось мне странным.
в снимке исключения для FusionLog я увидел следующее в его сообщении:
все проекты имели целевой процессор AnyCPU. Я изменил проект приложения ( проект, который ссылается на все другие проекты) на целевой процессор x86. Теперь это работает.
Не уверен, как целевой процессор перепутался без видимой причины, но это произошло.
автор: Jeremy Ray Brown
Я также сталкиваются с этой проблемой в проекте, через несколько минут я нашел решение, эта проблема связана с конфигурацией CPU, Если вы используете Visual Studio 2010 или VS 2013, just goto project ‘ s свойства и выберите Compile из боковой панели, и будет 5 выпадающих, 5-й выпадающий будет целевой процессор:, вы должны установить его на x86 или x64 согласно вашим требованиям вместо любого К. П. У.
моя проблема была решена после замены его на x86.
автор: Jawad Nadeem
Это также может произойти, просто имея несколько поддерживаемых платформ определена в app.config файл и, заставляя приложение работать в другой .NET framework, отличной от одной упоминается первым в приложении.файл config.
а также это срабатывает, когда у вас есть оба упомянутых фреймворка, доступных в вашей системе.
в качестве обходного пути вызовите целевую структуру, которую вы собираетесь использовать для отладки в приложение.config
ex: если вы пытаетесь запустить в .NET 4, файл конфигурации должен иметь что-то похожее на это,
автор: kuma DK
в моем проекте для C#, свойство проекта — >[Build] — >цель платформы: любой процессор, и снимите флажок предпочесть 32-бит, чтобы компилятор мог выбирать автоматически.
автор: bruce
сборка Chilkat .NET 4.5 требует, чтобы среда выполнения VC++ 2012 или 2013 была установлена на любом компьютере, где работает ваше приложение. Большинство компьютеров уже установили его. Ваш компьютер будет иметь его, потому что Visual Studio был установлен. Однако при развертывании на компьютере, где не доступна требуемая среда выполнения VC++, произойдет следующая ошибка:
установите все пакеты ниже
распространяемые пакеты Visual C++ для Visual Studio 2013-vcredist_x64
распространяемые пакеты Visual C++ для Visual Studio 2013-vcredist_x86
распространяемые пакеты Visual C++ для Visual Studio 2012-vcredist_x64
распространяемые пакеты Visual C++ для Visual Studio 2012-vcredist_x86
автор: Sukesh Chand
прежде всего, я получил это в VS2017 со старым проектом, который мне нужно было сделать крошечные изменение и upraded все проекты в рамках 4.7.
несколько других упомянули выбор Any CPU исправить эту проблему.
есть несколько мест, где вам нужно это сделать, и это может быть не так просто, как выбор из раскрывающегося списка. Это исправило его для меня:
1) вам нужно сделать это оба здесь:
2), а также в Configuration Manager (правой кнопкой мыши на решение)
но что, если его не существует.
автор: Simon_Weaver
Если вы используете LibreOffice из своей программы через CLI .net integration как и я, я получил ту же ошибку. Я использую старую версию LibreOffice в производственной среде на моем компьютере установлена более новая версия, которая была в конфликте. просто удалите LibreOffice. Я нашел решение здесь .NET CLI: не удалось загрузить файл или сборку ‘cli_cppuhelper’
автор: Jan Sršeň
Это может быть немного смешно, но у меня была такая же проблема с обычным рабочим кодом. Я добавил StreamWriter и StreamReader, и это дало эту ошибку. Решение было в том, что я взял этот код в скобки комментариев, затем отладил, и он снова начал работать
автор: Hovhannes Babayan
У меня также была эта проблема с запуском модульных тестов с помощью ReSharper в Visual Studio 2017 и исправлена со следующей конфигурацией:
автор: Feiyu Zhou
моя машина показала мне обновление BIOS, и я задался вопросом, связано ли это с внезапным появлением этой ошибки. И после того, как я сделал обновление, ошибка была решена, и решение построено нормально.
автор: radkan
вы пытаетесь запустить свой .exe-файл из cmd? Это была моя ошибка. Просто запустите .EXE-файл, дважды щелкнув его. Если это .NET Core SCD для Windows 8.1 / Windows Server 2012 R2 x64.
Источник: askdev.ru
Исправлено: «Была предпринята попытка загрузить программу с неверным форматом»
Если вы получаете код ошибки « ERROR_BAD_FORMAT » 11 с описанием « Попытка загрузить программу с неверным форматом », выполните действия по устранению неполадок, приведенные в этой статье, чтобы исправить это.
ERROR_BAD_FORMAT: фон
Ошибка «Была сделана попытка загрузить программу с неверным форматом» — довольно загадочный код ошибки. Существует не так много информации об этом, за исключением различных сообщений на форуме, где пользователи описывают проблему.
Код ошибки « ERROR_BAD_FORMAT » затрагивает в основном машины с Windows 7 , но иногда это также может происходить в Windows 10. Обычно это происходит, когда пользователи пытаются запустить приложение или программу на своих ПК или серверах Windows.
Код ошибки 11 часто вызывается проблемами с распространяемым пакетом VS, проблемами несовместимости программ, неправильными изменениями реестра и т. Д.
Как исправить ошибку 10: ERROR_BAD_FORMAT
ERROR_BAD_FORMAT на платформах .NET
Решение 1. Включите 32-битную совместимость
Пользователи сообщают, что эта ошибка в основном возникает из-за проблем несовместимости DLL, вызванных приложениями, работающими в Visual Studio, установленными в 64-разрядных операционных системах со значением TargetCPU = Any CPU. Другими словами, приложения пытаются загружать библиотеки DLL, созданные для 32-разрядных платформ, на компьютерах x64 и наоборот.
Чтобы решить эту проблему, вам нужно настроить утилиту для запуска в качестве 32-битного .NET-процесса с использованием CORFLAGS .
- Загрузите CORFLAGS со страницы поддержки Microsoft
- Запустите его следующим образом, чтобы включить 32-битный режим выполнения: corflags utility.exe / 32Bit +
- Используйте / 32Bit- в приведенной выше командной строке, чтобы выключить его.
Вы также можете включить 32-битную совместимость в приложении формы Windows. Просто щелкните правой кнопкой мыши Project> перейдите в Properties> Build> check Prefer 32-bit.
Кроме того, вы также можете использовать опцию «Любой процессор» и использовать выделенный код, чтобы определить, какую DLL использовать. Таким образом, вы будете использовать одну сборку для обработки как 32-битных, так и 64-битных платформ. Вот код для использования:
if (Environment.Is64BitProcess)
// вызвать MiniDumpWriteDump
>
еще
// вызвать MiniDumpWriteDumpX86
>
Вы также можете использовать условия препроцессора, но в этом случае вам нужно скомпилировать две разные сборки. Другими словами, скомпилируйте 32-разрядную сборку для 32-разрядных платформ и отдельную 64-разрядную сборку для 64-разрядных платформ.
Решение 2. Установите правильный распространяемый пакет VS
На вашем целевом ПК может не быть установлен соответствующий распространяемый пакет VS. Перейдите на веб-страницу Microsoft и установите соответствующую версию VS Redistributable Package в вашей системе.
Исправить ERROR_BAD_FORMAT в Windows 10
В Windows 10 ошибка «Попытка загрузить программу с неверным форматом» обычно возникает при запуске и связана с проблемами несовместимости программного обеспечения. Пользователи подтверждают, что эта проблема часто возникает при использовании инструментов замены в меню «Пуск».
Если вы используете замену меню «Пуск» в Windows 10, удалите его, и это должно помочь.
Также не забудьте починить ваш реестр . Самый простой способ восстановить реестр — использовать специальный инструмент , такой как CCleaner. Не забудьте сначала сделать резервную копию вашего реестра на случай, если что-то пойдет не так. Если вы еще не установили очиститель реестра на свой компьютер, ознакомьтесь с нашей статьей о лучших очистителях реестра для использования на ПК с Windows 10.
Вы также можете использовать средство проверки системных файлов Microsoft для проверки повреждения системных файлов. Вот как запустить сканирование SFC:
1. Перейдите в Пуск> введите cmd > щелкните правой кнопкой мыши Командная строка> выберите Запуск от имени администратора
2. Теперь введите команду sfc / scannow
3. Дождитесь завершения процесса сканирования и перезагрузите компьютер. Все поврежденные файлы будут заменены при перезагрузке.