Я разрабатываю проект базы данных SQL Server в Visual Studio, который на самом деле является пользовательской функцией. В этот проект я включил Json.NET в качестве эталона (используя NuGet).
Мне удалось опубликовать (и заставить работать) мою сборку и UDF в моем экземпляре SQL Server, сначала повернув базу данных TRUSTWORTHY ON
(поскольку мой проект НЕ БЕЗОПАСЕН), а затем запустив это:
CREATE ASSEMBLY [System.Runtime.Serialization]
FROM 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Runtime.Serialization.dll'
WITH PERMISSION_SET = UNSAFE;
Что оказывается сборкой, от которой зависит Json.NET (если я этого не сделаю, я получаю сообщение об ошибке)
Тем временем я читал о том, как плохо включать НАДЕЖНЫЙ может быть, и я попытался использовать асимметричный ключ, чтобы не включать его.
Еще до того, как подписать свою собственную сборку, я знаю, что мне придется создать ключ для System.Runtime.Serialization
, так как мой проект зависит от Json.Net, который, в свою очередь, зависит от него, но когда я запускаю его, я получаю следующее:
USE [master];
GO
CREATE ASYMMETRIC KEY [SystemRuntimeSerializationKey]
AUTHORIZATION [dbo]
FROM EXECUTABLE FILE = 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Runtime.Serialization.dll';
GO
Msg 15468, Level 16, State 5, Line 3
An error occurred during the generation of the asymmetric key.
Что мне мало помогает.
Итак, возможно ли сгенерировать такой ключ для сборок .NET framework или существует обходной путь, отличный от включения TRUSTWORTHY ON?