Condividi tramite


Решение проблемы с подсветкой синтаксиса JavaScript в Visual Studio 2008 Beta 2

Некоторые разработчики после установки Visual Studio 2008 Beta 2 обнаружили, что JavaScript код не подсвечивается и подсказка IntelliSense не работает. Здесь есть две новости – плохая и хорошая. Начнем с хорошей новости, у подавляющего большинства ваших коллег все работает, как и должно. Плохая новость в том, что вам придется проделать некоторые магические действия, чтобы подсветка и IntelliSense заработали и у вас. Но не беспокойтесь, я расскажу, что нужно сделать и, что важно, в финальной версии эта проблема будет исправлена.

При исследовании проблемы оказалось, что движок, отвечающий за работу с JavaScript в случаях, когда подсветка не работает, просто не зарегистрирован в системе. Поэтому, чтобы решить проблему, необходимо зарегистрировать этот движок в системе самостоятельно. К счастью, это не так сложно сделать: необходимо создать или изменить два ключа в системном реестре Windows. Это можно сделать, сохранив следующий текст в файл с расширением .reg, щелкнув по файлу два раза и разрешив добавить приведенные значения в системный реестр.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\CLSID\{014E9A41-54E5-44ED-B15E-EFFA8758BFFC}]
@="Microsoft.JScript.Authoring.EngineAdapter.ScriptAuthor"
"InprocServer32"="mscoree.dll"
"ThreadingModel"="Both"
"Class"="Microsoft.JScript.Authoring.EngineAdapter.ScriptAuthor"
"Assembly"="Microsoft.JScript.AuthoringServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"RuntimeVersion"="v2.0.50727"
"CodeBase"=file:///C:\\Program Files\\Microsoft Visual Studio 9.0\\Common7\\IDE\\Microsoft.JScript.AuthoringServices.dll
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\CLSID\{014E9A41-54E5-44ED-B15E-EFFA8758BFFC}\Implemented Categories]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\CLSID\{014E9A41-54E5-44ED-B15E-EFFA8758BFFC}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
@=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\CLSID\{014E9A41-54E5-44ED-B15E-EFFA8758BFFC}\InprocServer32]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\CLSID\{014E9A41-54E5-44ED-B15E-EFFA8758BFFC}\InprocServer32\9.0.0.0]
"Class"="Microsoft.JScript.Authoring.EngineAdapter.ScriptAuthor"
"Assembly"="Microsoft.JScript.AuthoringServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"RuntimeVersion"="v2.0.50727"
"CodeBase"=file:///C:\\Program Files\\Microsoft Visual Studio 9.0\\Common7\\IDE\\Microsoft.JScript.AuthoringServices.dll
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\CLSID\{014E9A41-54E5-44ED-B15E-EFFA8758BFFC}\ProgId]
@="JSAuthor"

Если же вы не очень любите добавлять в реестр непонятные данные, то можете сделать все руками. При установке Visual Studio 2008 Beta 2 обнаружена ошибка с регистрацией путей к файлу Microsoft.JScript.AuthoringServices.dll, достаточно будет прописать этот путь:

В ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\CLSID\{014E9A41-54E5-44ED-B15E-EFFA8758BFFC} - "CodeBase"=file:///C:\\Program Files\\Microsoft Visual Studio 9.0\\Common7\\IDE\\Microsoft.JScript.AuthoringServices.dll

В ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\CLSID\{014E9A41-54E5-44ED-B15E-EFFA8758BFFC}\InprocServer32\9.0.0.0 "CodeBase"=file:///C:\\Program Files\\Microsoft Visual Studio 9.0\\Common7\\IDE\\Microsoft.JScript.AuthoringServices.dll

После этого нужно перезапустить Visual Studio, если она была запущена и наслаждаться IntelliSense и подсветкой кода JavaScript.