在 SQL Server CLR 程序集中使用 Microsoft Solver Foundation
Posted
技术标签:
【中文标题】在 SQL Server CLR 程序集中使用 Microsoft Solver Foundation【英文标题】:Using Microsoft Solver Foundation in SQL Server CLR Assembly 【发布时间】:2015-08-10 20:54:31 【问题描述】:我目前正在编写自己的 CLR 存储过程,我需要使用 Microsoft Solver Foundation 的求解器。
为了能够在我的 CLR 项目中添加对 Microsft Solver Foundation 的引用,我需要将该程序集添加到我的 SQL Server 实例 (source)。所以我installed 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
但是,我收到以下错误:
Assembly 'MicrosoftSolverFoundation' could not be installed because existing policy would keep it from being used.
附加信息
CLR 版本:
directory C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
version v4.0.30319
state CLR is initialized
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)
【问题讨论】:
【参考方案1】:这篇 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
【讨论】:
以上是关于在 SQL Server CLR 程序集中使用 Microsoft Solver Foundation的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 的 clr 存储过程中执行动态 .net 代码