Сбой установки CreateInstance во время выполнения с использованием конвейера

#c# #winforms #azure-pipelines

Вопрос:

У меня есть проект WinForm, который работает с пакетом UWP, который компилируется в конвейере и во время выполнения следующим способом.

 private void InitMsr() {  MSR = new OPOSMSR();  MSR.Open("NCRMSR.3"); }  

Который использует Interop.OposMSR_CCO.dll

Я получаю следующую ошибку.

Не удалось получить генератор классов COM для компонента с идентификатором CLSID {CCB90122-B81E-11D2-AB74-0040054C3719} Из-за следующей ошибки: Класс 80040154 не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

Эта проблема возникает только при создании установочного пакета по конвейеру, потому что если я создам пакет из Visual Studio (я использую 2017) и установлю его, он будет работать без ошибок.

Задача, которую я использую в Конвейере, заключается в следующем.

 - task: VSBuild@1  displayName: 'Build WINFORMS.csproj'  inputs:  solution: WINFORMS.csproj  clean: true  configuration: 'Release'  vsVersion: 15.0  platform: x86  continueOnError: true  

Чтобы попытаться решить эту проблему, я сделал следующее:

  • Взаимодействие.OposMSR_CCO.dll похоже, что это ссылка на файл OPOSMSR.ocx. Поэтому я создал задачу, которая загружает ocx из библиотеки конвейера, и другую задачу PowerShell, которая регистрирует ее на компьютере Azure. Но это продолжает давать мне ошибку.
  • Способ, которым мне удалось воспроизвести случай локально, заключается в отключении 32-разрядной проверки предпочтения, только тогда я мог получить ту же ошибку. Свойства Winform-Компиляция

Я не знаю, могу ли я узнать из последнего, какая дополнительная конфигурация отсутствует в моей задаче конвейера.

Я надеюсь, что вы сможете мне помочь, спасибо.