Это опасности COM-контроля версий, он же DLL Hell. PIA, установленная в GAC, является наименьшим общим знаменателем, она позволяет вашему коду работать с любой версией IE 6 и более поздних версий. Ваш подход в противном случае здоров. Предупреждения реальны, вы не можете использовать помеченные элементы из языка сценариев или любого другого клиента, который полагается на автоматизацию COM. Вы можете избежать неприятностей, просто не используя их, не сложно.
При добавлении ссылки вы получили ошибку, поскольку использовали неверную версию Tlbimp.exe. Вероятно, версия .NET 4, судя по сообщению об ошибке. Версия, совместимая с 3.5, находится в каталоге c: \ program files \ microsoft sdks \ windows \ v6.0a \ bin. Иначе тот, который вы получите при использовании командной строки VS2008. Проверьте, набрав where tlbimp.exe
в командной строке.
Некоторые шансы, что вы загрузите PIA вместо вашей пользовательской сборки взаимодействия. Не уверен, что вы можете сказать из Fuslogvw.exe, настроенный на запись всех привязок. Ваша / asmversion должна избегать этого. Лучше всего создать полностью фиктивный номер версии, чтобы он никогда не совпадал с версией PIA, например 1.0.0.0
И, конечно, ваша программа не будет работать на компьютере пользователя, если на нем не установлен IE9.