Я получаю сообщение об ошибке "Попытка загрузить программу с неверным форматом" в проекте репликации SQL Server
Точная ошибка заключается в следующем
Не удалось загрузить файл или сборку "Microsoft.SqlServer.Replication, версия =9.0.242.0, культура = нейтральная, PublicKeyToken=89845dcd8080cc91" или одна из ее зависимостей. Была предпринята попытка загрузить программу с неверным форматом.
Недавно я снова начал работать над этим проектом после двухмесячного перехода на другой проект. Это работало отлично раньше, и я дважды проверил все ссылки.
12 ответов
Я нашел решение. Я недавно обновил свой компьютер до Windows 2008 Server 64-bit. Пространство имен SqlServer.Replication было написано для 32-разрядных платформ. Все, что мне нужно было сделать, чтобы запустить его снова, это установить целевую платформу в свойствах сборки проекта на X86.
Ниже приведен правильный ответ, но вам также может потребоваться включить 32-разрядные приложения в AppPool.
При настройке приложения для запуска на моем локальном компьютере (под управлением 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. Спасибо всем
Удалите каталог временных тестов, расположенный здесь C:\Users(Пользователь)\AppData\Local\Temp\VisualStudioTestExplorerExtensions\
Установите все проекты на x64 в Visual Studio
Установите архитектуру процессора по умолчанию на x64(Test/TestSettings/ Архитектура процессора по умолчанию).
Обязательно очистите сборку файла решения. Надеюсь, это поможет!
Изменение Target Framework в свойствах проекта с.NET Framework 4.7.1 до 4.6.2 работало для меня.