My .Net 4.5.2 Приложение WPF развернуто в C: \ Program Files \ Folder A \ FolderB.Он копируется в это место пользовательской службой развертывания, которая в основном представляет собой задание на копирование с некоторыми дополнительными функциями.Само приложение может быть развернуто xcopy, если у вас есть необходимые среды выполнения C ++, установлен .Net Framework.
Приложение включает в себя несколько компонентов com, зарегистрированных через файл манифеста приложения, который раньше работал нормально.После обновления двоичных файлов приложений несколько вызовов в форме System.Activator.CreateInstance завершаются ошибкой
System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Если я просто переименую папку приложения в c: \ Program Files \ FolderA \ FolderC, все работает правильно
Прикрепляя ProcessMonitor и WinDbg, я могу проследить, что приложение ищет в реестре заданный classid, не находит его и затем, если запуск из первой папки завершается неудачно, как описано выше.При запуске из переименованной или скопированной папки процесс загружает связанную DLL и просто продолжает.
Любые советы по диагностике этой проблемы?