我有一个调用简单 HTTP Web 服务的 CLR 项目。它以 x64 为目标,我只有在完成以下链接中概述的步骤后才能正确序列化它,该链接讨论了使 VS2010 指向正确的目标架构 (x64) 所需的更改——这些更改只需要卸载和更改 . csproj 文件有一些额外的行来引用 sgen.exe 的正确版本:http: //geekswithblogs.net/akraus1/archive/2011/12/10/148002.aspx
现在,我可以通过将“生成序列化程序集”设置为打开来构建这个项目及其 .XmlSerializers.dll。我想这样做是因为我的 CLR 项目将部署在数据库上,并且我不希望它运行时序列化任何对象,因为我的数据库中没有引用这些 DLL,我不想给我的 CLR 项目权限出于安全原因高于EXTERNAL_ACCESS,因为这将用于安全性很重要的生产环境,并且还因为我的数据库不可信。
长话短说,我正在按照以下链接中的指南将我的序列化程序集上传到数据库中,但出现错误: http: //footheory.com/blogs/bennie/archive/2006/12/07/invoking-a -web-service-from-a-sqlclr-stored-procedure.aspx
错误是:为程序集“.XmlSerializers”创建程序集失败,因为程序集是为不受支持的公共语言运行时版本构建的。
有谁知道如何通过强制 sgen.exe 序列化支持 CLR 的程序集版本来纠正此问题?万岁堆栈。