我正在使用Visual Studio 2012,并且编写了一些CLR SQL程序集并将其部署在多个SQL Server上。我向该程序集添加了调用Web服务的存储过程,当我尝试重新部署程序集时,该程序在其中一台服务器上失败。
我有一个错误:
无法加载动态生成的序列化程序集。在某些托管环境中,程序集加载功能受到限制,请考虑使用预生成的序列化程序。
我正在使用VS(MySolution.MyProject_Create.sql)生成的脚本来创建程序集和存储过程。该脚本创建程序集:
CREATE ASSEMBLY [AssemblyName]
AUTHORIZATION [dbo]
FROM 0xx4D5A9(....)
WITH PERMISSION_SET = EXTERNAL_ACCESS;
但是没有用于创建XmlSerializers.dll文件的命令,因此我必须将此文件复制到远程服务器,然后运行命令:
CREATE ASSEMBLY [AssemblyName.XmlSerializers] FROM
'C:\path\AssemblyName.XmlSerializers.dll'
WITH PERMISSION_SET = SAFE
然后手动编写XmlSerializers.dll脚本,以避免将此文件复制到其他服务器。
是否可以更改某些设置,以便Visual Studio也为XMLSerializers.dll生成创建脚本?
最佳答案
转到项目属性,“构建”选项卡,然后将“生成序列化程序集”设置为“开”。
关于c# - 生成用于在Visual Studio 2012中创建XmlSerializers.dll的脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19494258/