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

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

Could not load file or assembly 'Microsoft.SqlServer.Replication, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. An attempt was made to load a program with an incorrect format.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
321
0
270 889
12
Перейти к ответу Данный вопрос помечен как решенный

Ответы 12

Ответ принят как подходящий

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

У меня проблема с DLL, но в моем Project> HDP Properties ... нет вкладки "Build" (вроде бы все, но не это). На вкладках «Компиляция» и «Отладка» есть раскрывающееся меню «Платформа», но в обоих случаях единственным элементом в раскрывающемся списке является «Активный (любой ЦП)».

B. Clay Shannon 26.08.2013 23:12

Мне довелось столкнуться с обратной проблемой вышеупомянутой. У меня все работало в 64-битном режиме, и моей целью сборки был любой процессор. Когда я изменил его на 64-битный, он работал отлично :)

Madhurya Gandi 11.07.2017 20:44

ответ лысый ниже верен, но вам также может потребоваться включить 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- программа-с-неправильным-форматом /

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

Could not load file or assembly ChilkatDotNet2 or one of its dependencies. An attempt was made to load a program with an incorrect format.

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

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

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

Все сделано!

Приведет ли это к тому, что весь пул приложений будет работать как 32-разрядный, а не полностью 64-разрядный? Будет ли повторная компиляция зависимости для 64-битных / всех платформ лучшим решением? У меня эта проблема из-за NFOP, но, поскольку это открытый исходный код, я могу перекомпилировать его.

jamiebarrow 18.01.2011 12:12

Ссылка не работает, но вашего объяснения было достаточно, чтобы решить мою проблему. +1

Andrew Shepherd 23.03.2011 01:53

Ссылка с инструкцией по включению 32-битных приложений: blogs.msdn.com/b/rakkimk/archive/2007/11/03/…

Brandon S 28.03.2011 19:33

Возможно, стоит отметить, что это решение AppPool применимо только к приложениям ASP.NET - может сбить с толку некоторых разработчиков, которые никогда не использовали / не настраивали ASP.NET или IIS.

galaktor 11.04.2011 11:38

не исправляет в IIS7 только в IIS7.5

FlavorScape 12.01.2013 04:23

Точно такая же проблема с Чилкатом.

Ivan G 26.11.2013 18:17

Мой вопрос был специально для службы Windows, а ваше решение работает для веб-приложений. Может быть, нам стоит перефразировать вопрос в более общем плане и объединить некоторые ответы.

baldy 20.06.2014 11:05

"Ответ выше" - @ bboyle1234, не могли бы вы это исправить?

ANeves thinks SE is evil 30.09.2014 20:37

Я столкнулся с этой ошибкой при запуске отладки в Visual Studio, и попытался включить ее в IIS, похоже, нет никакой связи и на самом деле не работает.

Lei Yang 25.11.2016 10:00

привет, я не вижу эту опцию ... почему?!?!

elle0087 04.12.2017 19:30

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

К сожалению, не действует.

Jonathan 06.08.2011 07:43

Я был неправ - это сработало после того, как я избавился от всех своих папок «bin». Спасибо!

Jonathan 06.08.2011 08:19

Также исправил мою проблему, но только после того, как я сделал это для КАЖДОГО проекта в моем решении. Упомянутые шаги относятся к проектам C#. Для проектов VB.NET измените Project Properties> Compile> Advanced Compile Options> Target CPU на AnyCPU.

Francois Botha 15.09.2011 13:44

В моем случае проект уже был нацелен на «Любой процессор». Но я использую 64-битную Windows и пытаюсь импортировать DllImport старый аппаратный драйвер. В частности, изменение цели на x86 исправило это для меня.

bsegraves 14.11.2011 20:00

В моем случае я хотел работать под x64. Это не сработало. После изменения всех рекомендаций мне также пришлось поменять «Битнность» в Сети тоже на x64.

SKCS Kamal 02.04.2018 07:59

Для тех, кто получает эту ошибку в проекте 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 из корзины и построил заново, ошибка исчезла.

Я только что перестроил, и проблема исчезла без необходимости вручную удалять DLL. Спасибо!

Trevor 15.12.2011 00:46

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

Клей, какую версию IIS вы используете?

Harpal 27.11.2013 15:19

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

Un-check "Precompile during publishing"

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

Это то, что в конечном итоге сработало для меня. Специально для тех, кто пытается отлаживать веб-API с помощью библиотек Service Fabric !!! Если вы используете в своем проекте какие-либо библиотеки DLL Service Fabric, убедитесь, что вы используете указанное выше решение.

Chris Dutra 01.09.2016 03:45

Это ЕДИНСТВЕННОЕ решение, которое сработало для меня. Спасибо. : D

Jeremy Styers 30.01.2017 19:32

Работай и для меня!

Cù Đức Hiếu 13.03.2017 14:16

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

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

в приложении windows form я делаю это, Щелкните правой кнопкой мыши Project-> Properties-> Build-> Установите флажок Prefer 32-bit. Спасибо всем

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

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

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

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

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

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

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

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