Установка пользовательской языковой службы Visual Studio - PullRequest
2 голосов
/ 12 ноября 2010

Я написал новую языковую службу Visual Studio для внутреннего языка сценариев моей программной студии, следуя указаниям очень полезной статьи Написание вашей первой языковой службы Visual Studio . У меня отлично работает моя грамматика, несколько простых переходов и раскраска текста. Я провел тестирование как в Irony GrammarExplorer, так и в экспериментальном кусте Visual Studio, и я чувствую, что готов нормально использовать его в Visual Studio и развернуть его на нескольких других программистах для раннего тестирования и обратной связи. *

Проблема в том, что я не знаю, как установить языковой сервис. У меня есть эта милая маленькая DLL, которая работает в Experimental Hive, но не знаю, как ее запустить, когда я запускаю visual studio. Я просмотрел весь интернет и обнаружил, что тот или иной шаг затуманен везде, куда бы я ни посмотрел. Может быть, я просто слепой, или это намного проще, чем я думаю, но я был бы очень признателен, если бы кто-то мог дать мне подробные инструкции по установке моей языковой службы.

Заранее спасибо!

Ответы [ 2 ]

5 голосов
/ 23 ноября 2010

После получения значка Tumbleweed здесь мне удалось отыскать решение.Было несколько важных моментов, которые люди могли бы найти полезными.

Прежде всего необходим PLK (ключ загрузки пакета).Его можно сгенерировать здесь: http://msdn.microsoft.com/en-us/vstudio/cc655795.aspx Убедитесь, что вся информация, которую вы вводите, верна и введена в сборку для dll.

PLK устанавливается путем добавления кФайл rsx для решения, как правило, как элемент 104, а затем сопоставление этого номера элемента в атрибуте ProvideLoadKey в вашем коде.

Следующее тестирование PLK - это немного хлопотно.Советы можно найти здесь: http://msdn.microsoft.com/en-us/library/bb164677%28v=VS.90%29.aspx Я настоятельно рекомендую сначала использовать переключатель / noVSIP с экспериментальным ульем с самого начала.Я обнаружил, что использование / log на самом деле не помогает, гораздо лучше использовать анализатор загрузки пакетов после того, как вы установили пакет и у вас все еще есть проблемы с PLK.

Более подробное описание из анализатора загрузки пакетов можно выполнить с помощью следующей командной строки: devenv / command tools.analyzepackage / analyzeargs {ваш GUID} analyzepkg.txt

Как только вы будете удовлетворены иготов к развертыванию, есть учебное пособие, которое выглядело более скрытным, чем должно быть, в MSDN http://msdn.microsoft.com/en-us/library/bb458038%28VS.90%29.aspx

Одна вещь, которую я нашел, была любопытной с инструментом RegPkg, найденным в каталоге bin VS SDK:что он может нормально загружать мой пакет в решении для разработки, в котором он существует, но не будет загружаться в других решениях.Похоже, что есть дополнительный шаг для вызова devenv / setup, который я пропустил, и об этом позаботился в руководстве по развертыванию, которое я предоставил в предыдущем абзаце с помощью настраиваемого действия.

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

3 голосов
/ 05 августа 2011

Еще одна вещь, которую я потратил пару часов на то, что в руководстве MSDN не упоминается: если вы развертываете на 64-битном компьютере, приведенные инструкции не будут работать. После недолгих поисков я наткнулся на сообщение на полпути по этой ветке форума, которое объясняет это: http://social.msdn.microsoft.com/Forums/en/vsx/thread/989c5bea-3dd0-4e60-891a-f8f006e1b9a2

В руководстве по MSDN сказано, что здесь нужно установить ключи реестра, и regpkg.exe также сгенерирует ключи реестра здесь:

HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\...

Но на 64-битных компьютерах Visual Studio загружает свои настройки не оттуда, а отсюда:

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\9.0\...

Обратите внимание, что там есть дополнительный "Wow6432Node"; иначе ключи реестра идентичны, но для этого дополнительного «Wow6432Node» в пути. Таким образом, на 64-разрядных компьютерах вам нужно будет либо использовать эти расширенные ключи реестра, либо вы можете установить гибридные 32/64-разрядные .dll для обоих наборов ключей реестра без каких-либо последствий. У меня есть файл .reg, который устанавливается на оба набора ключей, и он работает очень хорошо.

Надеюсь, это поможет спасти кого-то еще!

(Для этого я использовал режим "Codebase" для regpkg, а не режим "Assembly".)

...