无法执行在 SQLCLR 中创建的存储过程

Unable to execute stored procedure created in SQLCLR

我已经在 SQLCLR(SQL 服务器数据库项目,VS2012)中创建了一个存储过程。我成功地将存储过程发布到数据库。但是当我 运行 数据库中的存储过程时,我得到一个错误。

Cannot load dynamically generated serialization assembly. In some hosting environments assembly load functionality is restricted, consider using pre-generated serializer. Please see inner exception for more information.

注意:发布后,没有创建xmlserializer.dll。连生成序列化程序集都设置为ON。

您是否在 SQLCLR 程序集(或其他一些 Web 服务客户端)中使用 WCF?

如果是这样,您需要使用 the XML Serializer Generator tool 手动创建序列化程序集,然后将其与原始程序集一起添加到 SQL 服务器。

上面 link 中有更详细的说明,但您需要的命令(可以添加为项目的 post-构建步骤)大致如下的:

"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sgen.exe" /force "$(TargetPath)"

然后在SQL服务器:

CREATE ASSEMBLY [(ProjectName).XmlSerializers.dll] from '(ProjectName).XmlSerializers.dll'

有关 sgen 的更多详细信息可用 here