Когда вы создаете новый объект Chest
, вы должны использовать оператор new
. Итак, в этом коде:
// Create 4 chests on Startup
for (var i = 0; i < 4; i++)
{
this.Chests.push(Chest(random(25,375), random(25,375), random(20,25), random(15,20), random(0,5)));
}
... Вы должны изменить
this.Chests.push(Chest(random(25,375), random(25,375), random(20,25), random(15,20), random(0,5)));
... На это:
this.Chests.push(new Chest(random(25,375), random(25,375), random(20,25), random(15,20), random(0,5)));
Как правило, вы можете заставить приложение .NET использовать определенную версию .NET Framework, указав тег supportedRuntime
в файле конфигурации приложения.
Таким образом, вы можете попробовать создать sqlservr.exe.config
в папке \Binn
в корневом пути экземпляра SQL и указать там, что вы хотите использовать только версии .NET до 3.5. Проверьте эту ссылку MSDN на структуру конфигурационного файла.
У меня возникла такая же досадная проблема. Ни один из элементов географии / геометрии в моей базе данных не работал. Взял несколько неудачных переустановок SQL-сервера, чтобы наконец (несколько недель спустя!) Найти следующий ключ в моем реестре равным '1'
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ OnlyUseLatestCLR
, когда я сбросил его на «0» и перезагрузил машину, все снова заработало!
Ганс
Из этой статьи и моего исследования в Интернете кажется, что может произойти обратное - возможно, вы могли бы зарегистрировать 4.0 DLL? Похоже, что SQL Server 2008 всегда будет загружать 2.0 CLR, а не 4.0 CLR. Попробуйте выполнить этот оператор, он скажет вам, какая версия вашего SQL-сервера запущена:
select * from sys.dm_clr_properties
В вашем сообщении в Intel, на которое вы ссылаетесь, если вы внимательно его прочитаете, говорится:
SQL Server 2008 и предстоящий SQL Server 2008 и предстоящий выпуск SQL Server 2008 R2, ранее под кодовым названием "Kilimanjaro", будут оба будут продолжать загружать последний сервисный версию CLR версии 2.0.
И далее:
Хотя будущие версии SQL Server могут загружать более новые версии CLR или даже поддерживать загрузку нескольких CLR в рамках процесса, версия 2.0 CLR остается для SQLCLR в SQL Server 2008 и SQL Server 2008 R2.
Я не знаю, как вам удается загрузить что-то вроде .NET 4 в SQL Server 2008 R2.....
Они сделали явный выбор, чтобы гарантировать, что установка .NET 4.0 не будет иметь последствий. Она не должна использовать .NET 4.0 или какие-либо новые файлы, за исключением новых shim-файлов, mscoree.dll и mscoreei.dll. Они должны быть обратно совместимы со средой выполнения 2.0. Вы можете запустить Process Explorer, чтобы посмотреть номера версий загруженных dll, чтобы убедиться, что запущена правильная среда выполнения.