Я получаю сообщение об ошибке "Попытка загрузить программу с неверным форматом" в проекте репликации SQL Server

Точная ошибка заключается в следующем

Не удалось загрузить файл или сборку "Microsoft.SqlServer.Replication, версия =9.0.242.0, культура = нейтральная, PublicKeyToken=89845dcd8080cc91" или одна из ее зависимостей. Была предпринята попытка загрузить программу с неверным форматом.

Недавно я снова начал работать над этим проектом после двухмесячного перехода на другой проект. Это работало отлично раньше, и я дважды проверил все ссылки.

12 ответов

Решение

Я нашел решение. Я недавно обновил свой компьютер до Windows 2008 Server 64-bit. Пространство имен SqlServer.Replication было написано для 32-разрядных платформ. Все, что мне нужно было сделать, чтобы запустить его снова, это установить целевую платформу в свойствах сборки проекта на X86.

Ниже приведен правильный ответ, но вам также может потребоваться включить 32-разрядные приложения в AppPool.

Источник: http://www.alexjamesbrown.com/uncategorized/could-not-load-file-or-assembly-chilkatdotnet2-or-one-of-its-dependencies-an-attempt-was-made-to-load-a-program-with-an-incorrect-format/

При настройке приложения для запуска на моем локальном компьютере (под управлением Vista 64bit) я столкнулся с этой ошибкой:

Не удалось загрузить файл или сборку ChilkatDotNet2 или одна из его зависимостей. Была предпринята попытка загрузить программу с неверным форматом.

Очевидно, что приложение использует компоненты ChilKat, но может показаться, что используемая нами версия является только 32-битной версией.

Чтобы устранить эту ошибку, я настроил пул приложений в IIS, чтобы разрешить 32-разрядные приложения. Откройте диспетчер IIS, щелкните правой кнопкой мыши пул приложений и выберите "Дополнительные параметры" (см. Ниже).

Затем установите "Включить 32-разрядные приложения" в True.

Все сделано!

Измените значение Platform Target на странице свойств вашего веб-проекта на Any CPU,

Перейдите в IIS -> Пул приложений -> Расширенные настройки -> Включить 32-разрядные приложения.

Недавно у нас возникла проблема при попытке запустить код из Visual Studio. В этом случае вам нужно сделать
ИНСТРУМЕНТЫ> ОПЦИИ> Проекты и решения> ВЕБ-ПРОЕКТЫ и отметьте "Использовать 64-разрядную версию IIS Express для веб-сайтов и проектов".

Для тех, кто получает эту ошибку в проекте ASP.NET MVC 3, в самой Visual Studio:

В приложении ASP.NET MVC 3, над которым я работаю, я попытался добавить ссылку на Microsoft.SqlServer.BatchParser в проект, чтобы решить проблему, отсутствующую на сервере развертывания. (Наше приложение использует SMO; правильным решением было установить собственный клиент SQL Server и еще пару вещей на сервере развертывания.)

Даже после того, как я удалил ссылку на BatchParser, я продолжал получать сообщение об ошибке "Была сделана попытка...", ссылаясь на библиотеку BatchParser, на каждой открываемой мной странице ASP.NET MVC 3, и за этой ошибкой следовали десятки разборов страниц. ошибки.

Если это произойдет с вами, выполните поиск файлов и посмотрите, находится ли DLL в одной из папок \bin вашего проекта. Даже если вы делаете перестройку, Visual Studio не обязательно очищает все во всех ваших папках \bin. Когда я удалил DLL из корзины и собрал заново, ошибка исчезла.

У меня было это в приложении MVC5 в Windows 10 против IIS Express. Мое решение было следующее:

  • Инструменты =>
    • Варианты =>
      • Проекты и решения =>
        • Веб-проекты =>
          • Используйте 64-битную версию IIS Express для веб-сайтов и проектов

Изменить его на 32-битный (правда), он работает

если вы получите эту длину не может быть меньше нуля. Имя параметра: проблема с длиной в настройке сервера iis. Просто измените строку подключения в файле web.config, например, имя сервера и имя сервера sql, и перезапустите iis, затем попытайтесь загрузить страницу, на которой он работает.

Если при публикации в Visual Studio 2012 происходит ошибка, снимите флажок "Прокомпилировать во время публикации" в мастере публикации.

Снимите флажок 'Прекомпилировать во время публикации'

В приложении Windows Form я делаю это, щелкнув правой кнопкой мыши на Project->Properties->Build->Check Prefer 32-bit. Спасибо всем

  1. Удалите каталог временных тестов, расположенный здесь C:\Users(Пользователь)\AppData\Local\Temp\VisualStudioTestExplorerExtensions\

  2. Установите все проекты на x64 в Visual Studio

  3. Установите архитектуру процессора по умолчанию на x64(Test/TestSettings/ Архитектура процессора по умолчанию).

Обязательно очистите сборку файла решения. Надеюсь, это поможет!

Изменение Target Framework в свойствах проекта с.NET Framework 4.7.1 до 4.6.2 работало для меня.

Другие вопросы по тегам