Ошибка System.BadImageFormatException при запуске программы .Net на сервере x64 - PullRequest
1 голос
/ 13 июня 2019

У меня есть старая программа DotNet, скомпилированная в 32-битной версии, которая имеет форму для загрузки и выполнения пакета служб SSIS.Для выполнения пакета SSI он использует сборку Microsoft.SqlServer.DTSRuntimeWrap, которая представлена ​​в 32-разрядной версии, как показано ниже.

using Microsoft.SqlServer.Dts.Runtime.Wrapper;
.
.
namespace WinFmAppETLControl
{
  public class FrmControl : Form
  {

        this.ProcessStep1();

        private void ProcessStep1()
         {
         if (((IDTSApplication100)new ApplicationClass()).LoadPackage("C:\\Users\\abc\\MyData\\WinFmAppETLControl\\ETL\\SUN Daily ETL\\Batch and SysidRange.dtsx", true, (IDTSEvents100)null).Execute() == DTSExecResult.DTSER_SUCCESS){

        MessageBox.Show("Success");
        }
        else{
        MessageBox.Show("Failure");
        }
    }
  }
}

Теперь мне нужно перенести эту программу на 64-разрядную версию нового сервера.Создаю exe-файл для запуска на сервере.Когда я собираю проект в x64 и запускаю на сервере, я получаю ошибку ниже при выполнении exe-файла.

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

Когда я собираю проект в x86 и запускаю на сервере, я получаю ошибку ниже при выполнении exe-файла.

System.Runtime.InteropServices.COMException (0x80040154): получение фабрики классов COM для компонента с CLSID {BA785E28-3D7B-47AE-A4F9-4784F61B598A} не выполнено из-за следующей ошибки: 80040154 Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Служба SSIS, работающая на сервере, является 64-битной (D: \ Program Files \ Microsoft SQL Server \ 110 \ DTS \ Binn \ MsDtsSrvr.exe ").

Пожалуйста, помогите, если кто-нибудь знает. Я проверил много ответов, но не смог найти решение. Я относительно новичок в .Net

...