У меня есть веб-проект, проект библиотеки С# и проект веб-настройки в Visual Studio 2005. Веб-проекту требуется, чтобы библиотека С# была зарегистрирована в GAC. Это просто, просто добавьте папку GAC в проект установки и отбросьте основной вывод библиотеки С# там. Библиотека С# также должна быть зарегистрирована для COM-взаимодействия. Я выбираю основной вывод в папке GAC и изменяю свойство Register на vsdrpCOM. Я создаю проект установки и запускаю его, но DLL никогда не регистрируется для COM.
Это не удивительно для меня. Мне всегда приходилось добавлять класс установщика, у которого было специальное действие, которое использовало RegistrationServices.RegisterAssembly, чтобы правильно зарегистрировать мои DLL для COM. Поэтому я применяю это обходное решение, которое я принял на протяжении многих лет в своей ситуации. Теперь я обнаружил, что пользовательские действия, назначенные для первичного вывода в папке GAC проекта установки, не позволяют проекту настройки даже строить.
Я всегда чувствовал, что я взломал тигры, чтобы заставить .NET и COM играть хорошо с проектами установки и развертывания. Каков правильный способ решения моей проблемы?