我在SQLCLR(SQL Server数据库项目,VS2012)中创建了一个存储过程。我成功地将存储过程发布到数据库。但是当我在数据库中运行存储过程时,我收到错误。
无法加载动态生成的序列化程序集。在某些托管环境中,组件加载功能受到限制,请考虑使用预生成的序列化程序。有关详细信息,请参阅内部异常。
注意:发布后,不会创建xmlserializer.dll
。甚至生成序列化程序集也设置为ON。
答案 0 :(得分:1)
您是在SQLCLR程序集(或其他一些Web服务客户端)中使用WCF吗?
如果是这样,您需要使用the XML Serializer Generator tool手动创建序列化程序集,然后将其与原始程序集一起添加到SQL Server。
上面的链接中有更详细的说明,但您需要的命令(可以作为项目的后期构建步骤添加)有以下几点:
"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sgen.exe" /force "$(TargetPath)"
然后在SQL Server中:
CREATE ASSEMBLY [(ProjectName).XmlSerializers.dll] from '(ProjectName).XmlSerializers.dll'
有关sgen的更多详细信息,请here。