В SQL Server 2008 я пытаюсь зарегистрировать сборку, которая, кажется, ссылается только на поддерживаемые библиотеки. Вот код T-SQL, который я использую для регистрации сборки:
create assembly MySpatial from 'c:\Spatial.dll'
Это приводит к следующей ошибке:
Msg 6509, уровень 16, состояние 31, строка 1 Произошла ошибка при сборе метаданных из сборки Spatial с HRESULT 0x80004005.
Однако, если я добавлю with permission_set=unsafe
, SQL успешно выполнит команду. Как я могу узнать, почему произошла ошибка или почему моя сборка должна быть зарегистрирована как небезопасная?
readonly
, и они ссылаются только на безопасныеmscorlib.dll
иSystem.dll
, оба v2. Я попытался скопировать ограниченную часть классов в отдельный файл и скомпилировать, что работает, так что есть что-то конкретное, что мешает принять его как безопасный. - person Allon Guralnek   schedule 28.01.2010GetEnumerator()
, поэтому я преобразовал их в обычные методы +new Func<>
(преобразование их в анонимные методы не помогло). Это позволило мне добавить сборку в SQL Server, не получая ошибки. Я до сих пор не знаю, почему эти лямбда-выражения вызвали это (они могли нормально компилироваться и работать вне SQL Server). - person Allon Guralnek   schedule 28.01.2010