F#核心库是否可以通过SQLCLR批准?
根据thread,F#Core必须是SQLCLR批准的,才能标记为安全的组件。这是计划吗?甚至可以做到吗?我相信可以做到。然而,F#核心库是微软的唯一财产。这意味着您不能修改其代码并重新编译以匹配和遵守SQLCLR SAFE。我建议您使用Microsoft的connect网站向Microsoft添加建议 Microsoft connect位于:(注册前,您必须在live.com或hotmail.com上注册并拥有电子邮件帐户) 要手动添加.NET DLL并将其集成到SQL Server,可以执行以下操作: 在本例中,必须首先编译F#代码中的DLL。我从MSDN库链接执行此步骤: 只是别忘了将PERMISSION\u SET=SAFE添加到CREATE ASSEMBLY命令中 以下是我从上述链接中引用的步骤: 在SQL Server中加载和运行“Hello World”存储过程 一旦样本程序成功完成 编译后,可以在SQL中对其进行测试 服务器。为此,请打开SQL Server 管理工作室并创建一个新的 查询,连接到合适的测试 数据库(例如 AdventureWorks示例数据库)。我们 将需要创建程序集,以便 可以访问存储过程。对于 在这个例子中,我们假设您 已创建helloworld.dll C:\目录中的程序集。添加 下面的Transact-SQL语句 你的问题F#核心库是否可以通过SQLCLR批准?,f#,sqlclr,F#,Sqlclr,根据thread,F#Core必须是SQLCLR批准的,才能标记为安全的组件。这是计划吗?甚至可以做到吗?我相信可以做到。然而,F#核心库是微软的唯一财产。这意味着您不能修改其代码并重新编译以匹配和遵守SQLCLR SAFE。我建议您使用Microsoft的connect网站向Microsoft添加建议 Microsoft connect位于:(注册前,您必须在live.com或hotmail.com上注册并拥有电子邮件帐户) 要手动添加.NET DLL并将其集成到SQL Server,可以执行
CREATE ASSEMBLY helloworld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE
创建程序集后,
我们现在可以进入我们的地狱世界了
方法,通过使用创建过程
陈述我们会打电话给我们的客户
程序“你好”:
创建过程后,
它可以像普通汽车一样运行
用汇编语言编写的存储过程
Transact-SQL。执行以下命令
命令:
EXEC hello
这将导致以下结果
SQL Server管理中的输出
Studio消息窗口
Hello world!
编辑:根据下面的评论,他对F#现在是开源的看法是正确的!您可以修改并重新编译它以满足您的需要
编辑:添加有关如何将DLL集成到SQL Server CLR集成的更多详细指南。一个技巧,尽管很讨厌,但可能是使用fsc的--standalone标志(又称F#编译器)。这甚至可以添加到项目设置中,并嵌入到输出工件F#运行时库中(以及所有其他可嵌入的依赖项)。我相信,在这一点上,只要将程序集标记为SQLCLR safe,您就应该能够做您想要做的事情。F#核心库与所有编译器一样,是使用开源许可证Apache 2.0发布的。你当然可以修改和重新编译它,你也可以发布它,甚至在商业用途上。完成-嗨,丹尼尔。。如果您认为我的答案对您有帮助,请将其标记为您问题的答案。:)@艾里万:问题是“有计划吗”和“能做到吗”,你没有完全回答。我希望可能有一位潜藏在周围的微软员工会插话。不过,您建议将其发布在MS Connect上是很有帮助的,所以我投了赞成票。@Daniel您能再读一遍我的答案吗?我说,我相信这是可以做到的,特别是现在F#是开源的。您可以简单地从源代码重新构建它。我自己做的。但正如我在回答的第一段中所指出的,最好将F#的SQLCLR遵从性留给Microsoft,因为他们仍然拥有它,即使它是开源的。这仍然不允许将程序集标记为
安全的
。它所做的只是将不安全代码移动到自定义程序集中。
Hello world!