NemerleLanguageService не инициализируется
От: i1yich  
Дата: 14.10.09 01:48
Оценка:
Решил познакомится с интеграцией, все скачалось, установилось и скомпилировалось отлично, но при попытке открыть или создать Nemerle-проект сразу же наткнулся на баг.
Класс NemerleLanguageService не может проинициализироваться, если в текущий аппдомен загружены динамические сборки. Непосредственно ошибка возникает в конструкторе класса IntelliSenseModeLibraryReferenceManager, в строке, где он получает CodeBase сборок:

      foreach (assembly in AppDomain.CurrentDomain.GetAssemblies())
      {
        // Skip nameless and satellite assemblies
        //
        def assemblyName = assembly.GetName();
        unless (assemblyName == null || assemblyName.Name.EndsWith(".resources"))
        {
          def path = Uri(assembly.CodeBase).LocalPath;
          def fileTime = GetLastWriteTimeUtc(path);
          assByString[path] = (assembly, fileTime);
          assByStrongName[assembly.FullName] = assembly;
        }
      }


При обращении к assembly.CodeBase получаем ошибку:

assembly.CodeBase' threw an exception of type 'System.NotSupportedException'
    base {System.SystemException}: {"The invoked member is not supported in a dynamic assembly."}


В итоге для пользователя все выливается в MessageBox
---------------------------
Microsoft Visual Studio
---------------------------
Value cannot be null.

Parameter name: languageService
---------------------------
ОК Отмена
---------------------------
, проекты немерле не загружаются, а также не проходят юнит-тесты интеграции.

Сборка, на которой код спотыкается, как-то относится к плагину RedGate SQL Propmt, установленному у меня. При его отключении все заработало нормально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.