万一其他人遇到这个问题。
错误:SQL72014:.Net SqlClient 数据提供程序:...创建程序集
程序集“Assembly.Name”失败,因为程序集“Assembly.Name”
验证失败。检查引用的程序集是否是最新的
并受信任(对于 external_access 或不安全)在
数据库。 CLR 验证程序错误消息(如果有)将跟随此消息
[令牌 0x02000003] 类型加载失败。
SQLCLR 程序集已成功生成,但无法部署。当常规 .NET 应用程序(在 SQL Server 之外)访问该程序集时,它将给出TypeLoadException
:
无法从程序集中加载类型“Type.In.Assembly”
'程序集名称,版本=1.0.0.0,文化=中性,
PublicKeyToken=null' 因为格式无效。
该问题与程序集中的用户定义类型 (UDT) 有关。
罪魁祸首是
System.Runtime.InteropServices.StructLayoutAttribute
当我们定义 UDT 时使用
[Microsoft.SqlServer.Server.SqlUserDefinedType(Format.Native)]
并且 UDT 是一个类(而不是结构),还需要定义一个[StructLayout(LayoutKind.Sequential)]
在课堂上。
问题是我的 UDT 类继承自基类。The StructLayout
也必须在基类上定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)