Установка VSIX через пользовательский установщик (xcopy), VS не загружает его

Я пытаюсь развернуть расширение Visual Studio (VSIX), которое мы написали для Visual Studio 2013, с помощью пользовательского установщика. Установщик запускается из службы Windows, которая запускается под учетной записью локальной системы, поэтому я не могу использовать приложение VSInstaller.exe. (Я не могу использовать параметр /a, чтобы установить его в общей области, потому что, похоже, для этого требуются повышенные привилегии.) Поэтому я иду по маршруту xcopy. Я извлекаю свое расширение в это место...

VsInstallRootFolder\Common7\IDE\Extensions

это то, что я видел во всех блогах. Но по какой-то причине, когда я делаю это, Visual Studio не пытается загрузить расширение.

Я проверил журнал запуска, и нет никаких указаний на то, что он пытался загрузить мое расширение. Я сравнил содержимое моей установки с установкой, выполненной с помощью VSInstall (которая работает), и они идентичны.

Интересен тот факт, что если я выполняю установку ПОСЛЕ того, как размещу расширение вручную, оно установит расширение для VS 2012, а затем загрузит мое расширение в 2013, используя правильный путь.

Я думаю, что установщик делает что-то еще, кроме xcopy. Я проверил реестр и не нашел записи о моем Guid.

Кто-нибудь может мне помочь? Делает ли VSInstaller что-то большее, чем просто xcopy?

Спасибо!


person David Cardinale    schedule 22.04.2014    source источник


Ответы (1)


Visual Studio кэширует установленные пакеты, поэтому xcopy недостаточно. Вам нужно запустить «devenv.exe /setup», чтобы Visual Studio повторно просканировала пакеты и обнаружила ваши. Или вы можете найти некоторые хаки для сброса кеша, такие как Регистрация распакованных расширений VSIX через MSI без использования devenv /setup

person Sergey Vlasov    schedule 23.04.2014
comment
Вы, сэр, мой герой. Благодарю вас! - person David Cardinale; 23.04.2014