Я застрял на этом некоторое время. Я попробую объяснить в самых простых выражениях и, насколько мне известно. Я буду соблюдать любую помощь.Незарегистрированная COM-библиотека с проектом установки C#
У меня есть проект C#, который использует скомпилированную ActiveX DLL VB6, которую я постоянно обновляю. Я скомпилирую проект установки, отправлю его клиенту, и они запустили настройку. При создании обновленного проекта установки я бы увеличил «версию» проекта установки, чтобы он не стал беспокоиться о том, что «еще одна версия уже установлена».
Что началось после нескольких обновлений, я начал замечать, что DLL не будет обновляться до новой версии в установщике. На клиентском компьютере установлена и зарегистрирована оригинальная DLL. Первый симптом: метод не нашел исключений из кода клиента C#.
Это не общая DLL, и это требует только это приложение.
Я заметил, что при удалении приложения (с помощью обычной процедуры) DLL также не удаляется из папки приложения, хотя я бы установил свойство этого файла 'Permanent' в false. Также регистрируются записи регистрации в реестре.
Я обновляю в VS6.0 версию DLL (обычно увеличиваю номер сборки) перед ее созданием. Затем в VS2008 я удаляю его из списка ссылок и добавляю его снова из вкладки «Обзор», не перерегистрируя его на моей машине dev и добавляя его со вкладки COM.
Я думал об этих вариантах.
- Пользовательского шаг в проекте установки для regsvr32.exe/и 'жёстко пути моей библиотеки DLL при удалении программы (уродливой)
- Как-то выяснить, как собственность «изолят» может работать на меня без регистрации
- Узнайте, как выполнить проект установки «Условия», который фактически проверял бы версию библиотеки и, соответственно, обновлял файл при каждой установке)
Любая помощь будет невероятно приветствоваться.
Почему вы используете для создания программы установки? ClickOnce? InstallShield? Специальная программа настройки? –
Это не большой продукт, и я хотел бы получить некоторый опыт в нем. Я также считаю, что то, что я пытаюсь сделать, является основным. Я буду искать продукт в будущем, но пока это мой выбор. Я ценю ваш комментарий. –
Я попытался установить свойство ссылки на «Изолированный», а свойство Register в проекте установки - registerRelativePath (что-то похожее). Я получаю предупреждение при создании проекта установки, но, похоже, не регистрирует DLL и работает. Однако не удалять его при удалении. –