2010-11-11 7 views
2

Я написал новую языковую службу Visual Studio для внутреннего языка скриптинга моего программного обеспечения, следуя указаниям из очень полезной статьи Writing Your First Visual Studio Language Service. У меня есть моя грамматика, отлично работающая, несколько простых случаев goto и работа, и раскраска текста. Я провел тестирование как в Irony GrammarExplorer, так и в Экспериментальном улей Visual Studio, и я чувствую, что готов использовать его в визуальной студии и развернуть его для нескольких других программистов для раннего тестирования и обратной связи.Установка пользовательской службы языка Visual Studio

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

Заранее благодарен!

ответ

5

После получения значка 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/команды tools.analyzepackage/analyzeargs {ваш GUID} analyzepkg.txt

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

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

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

+0

я должен упомянуть некоторые это VS2008 специфичны. Они упростили процесс в VS2010. – ColinCren

3

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

В учебнике MSDN говорится, что здесь устанавливаются разделы реестра и regpkg.ехе генерирует ключи реестра и здесь:

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, а не в режиме «Ассамблея».)

+0

Очень интересно, я не сталкивался с этим сам, но это хорошо знать! – ColinCren