#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-Компиляция
Я не знаю, могу ли я узнать из последнего, какая дополнительная конфигурация отсутствует в моей задаче конвейера.
Я надеюсь, что вы сможете мне помочь, спасибо.