.NET COM Interop развертывание с ошибкой Wix - PullRequest
1 голос
/ 28 сентября 2011

Я занимаюсь разработкой панели инструментов .NET BandObject для Internet Explorer.Я работаю над примером в CodeProject (http://www.codeproject.com/KB/cs/Issuewithbandobjects.aspx), и все работало нормально, я использовал gacutil и regasm для тестирования панели инструментов, и это работало.Затем я перешел к использованию Wix, чтобы протестировать реальное развертывание и создать файл msi, что означало переключение на Heat.

Изначально я создал фрагменты для различных библиотек DLL, и это работало нормально, добавив вручную<... assembly=".net" ...> атрибут для различных файлов wxs.Однако для дальнейшей подготовки к развертыванию я переименовал проект и имя файла dll, изменив GUID из образцов 2 dll и, следуя этому, также попытался протестировать обновление основного номера версии.Изменив DLL, я также регенерировал файлы wxs с помощью Heat, вручную добавив необходимые атрибуты.Однако теперь панель инструментов больше не загружается в IE, даже если эта опция есть.Он молча завершается сбоем.

При проверке записей реестра, используя OLEVIEW.exe, я могу создать экземпляр старого dll проекта и получить доступ к его COM-интерфейсу, который был зарегистрирован с помощью gacutil и regasm.Тем не менее, установленный файл Wix не удается загрузить с ошибкой:

CoGetClassObject failed.
The system cannot find the file specified.
severity: SEVERITY_ERROR, facility: FACILITY_WIN32 ($80070002)

Я подозреваю, что это потому, что новый COM-объект по какой-то причине не был зарегистрирован правильно ни в Wix, ни в процессе установки msi.Это связано с тем, что при сравнении старых и новых библиотек DLL в OLEVIEW новая библиотека DLL имеет записи реестра в форме:

InprocServer32[CodeBase]=file///C:\Release\MyProject.dll
--1.0.4279.39243[CodeBase]=file///C:\Release\MyProject.dll

В старом объекте COM нет этих строк.Это говорит о том, что хотя он был установлен в GAC, он не был зарегистрирован должным образом.Что еще более запутанно, так это то, что старые установочные файлы MSI, которые раньше работали, также не работали, если были установлены (все предыдущие версии Wix сначала удалены).

Я в растерянности.Надеюсь, кто-нибудь сможет пролить свет на ситуацию.

С наилучшими пожеланиями, Даниэль.

...