gpt4 book ai didi

c# - SQLCLR 程序集部署失败,因为程序集验证失败

转载 作者:行者123 更新时间:2023-11-30 23:20:28 25 4
gpt4 key购买 nike

以防其他人遇到这个问题。

Error: SQL72014: .Net SqlClient Data Provider: ... CREATE ASSEMBLY for assembly 'Assembly.Name' failed because assembly 'Assembly.Name' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database. CLR Verifier error messages if any will follow this message
[token 0x02000003] Type load failed.

SQLCLR 程序集构建成功但无法部署。当常规 .NET 应用程序(SQL Server 外部)访问程序集时,它会给出一个 TypeLoadException:

Could not load type 'Type.In.Assembly' from assembly 'Assembly.Name, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' because the format is invalid.

问题与程序集中的用户定义类型 (UDT) 有关。

最佳答案

罪魁祸首是

System.Runtime.InteropServices.StructLayoutAttribute

当我们定义一个UDT时使用
[Microsoft.SqlServer.Server.SqlUserDefinedType(Format.Native)]并且 UDT 是一个类(而不是结构),还需要定义一个[StructLayout(LayoutKind.Sequential)] 在类上。

问题是我的 UDT 类是从基类继承的。 StructLayout 也必须在基类上定义。

关于c# - SQLCLR 程序集部署失败,因为程序集验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39741896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com