在SQL Server CLR程序集中使用Microsoft Solver Foundation

Cri*_*usa 5 c# sql-server clr sqlclr ms-solver-foundation

我目前正在编写自己的CLR存储过程,我需要使用Microsoft Solver Foundation的解算器.

为了能够在我的CLR项目中添加对Microsft Solver Foundation的引用,我需要将该程序集添加到我的SQL Server实例(源).所以我安装了MS Solver Foundation Redistributable,并使用以下脚本作为服务器管理员在SQL Server中注册它:

USE MYDB

ALTER DATABASE MYDB SET TRUSTWORTHY ON WITH ROLLBACK IMMEDIATE

ALTER DATABASE MYDB SET TRUSTWORTHY ON

CREATE ASSEMBLY MicrosoftSolverFoundation
AUTHORIZATION dbo
FROM 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Microsoft.Solver.Foundation.dll' 
WITH PERMISSION_SET = UNSAFE
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Assembly 'MicrosoftSolverFoundation' could not be installed because existing policy would keep it from being used.
Run Code Online (Sandbox Code Playgroud)

附加信息

CLR版本:

directory   C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
version v4.0.30319
state   CLR is initialized
Run Code Online (Sandbox Code Playgroud)

SQL Server版本:

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
Dec 28 2012 20:23:12 
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
Run Code Online (Sandbox Code Playgroud)

jle*_*sik 0

这篇 MSDN 帖子似乎讨论了同样的事情,并建议使用mscorcfg.msc工具来查看运行时安全策略。

它还提到了Fusion Log Viewer,用于查看在尝试创建程序集时是否正在记录任何内容。

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6546340a-2cf7-4308-88d0-c403cebdb66b/create- assembly-error-could-not-be-installed