You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server创建引用NetFwTypeLib的C#程序集失败求助

SQL Server 2005 CLR程序集依赖找不到问题排查与解决

可能原因及对应解决办法

1. 程序集名称大小写/拼写不匹配

SQL Server对程序集名称的大小写敏感(取决于数据库排序规则),错误提示中引用的是全小写的interop.netfwtypelib,但你创建的是[Interop.NetFwTypeLib],名称大小写差异会导致匹配失败。

解决办法:

  • 修改创建Interop程序集的语句,使用全小写名称,与错误提示保持一致:
CREATE ASSEMBLY [interop.netfwtypelib] 
AUTHORIZATION dbo
FROM "C:\Path\That\Go\To\My\Project\FwSetting\FwSetting\bin\Debug\Interop.NetFwTypeLib.dll"
WITH PERMISSION_SET = unsafe 
  • 或检查你的FwSetting.exe项目中对Interop程序集的引用名称,确保与数据库中创建的程序集名称完全一致。

2. 引用的Interop程序集与导入的不是同一文件

即使版本号显示一致,重新生成的Interop程序集可能因编译环境变化导致哈希值不同,SQL Server会判定为不同程序集。

解决办法:

  • 将FwSetting.exe同目录下的Interop.NetFwTypeLib.dll复制到导入路径,确保导入的是项目实际引用的文件;
  • 使用sn -T Interop.NetFwTypeLib.dll命令(需安装.NET Framework SDK)查看公钥令牌,确认其为null(与错误提示一致,说明是无强名程序集),若不一致则说明引用的不是同一文件。

3. 重新按依赖顺序部署程序集

有时残留的程序集元数据会导致加载异常,建议先清理现有程序集,再严格按依赖顺序重新创建:

USE gdt
-- 先删除主程序集,再删除依赖
DROP ASSEMBLY IF EXISTS FwSetting
DROP ASSEMBLY IF EXISTS WindowsForm
DROP ASSEMBLY IF EXISTS [interop.netfwtypelib]

-- 按依赖顺序重新创建
CREATE ASSEMBLY [interop.netfwtypelib] 
AUTHORIZATION dbo
FROM "C:\Path\That\Go\To\My\Project\FwSetting\FwSetting\bin\Debug\Interop.NetFwTypeLib.dll"
WITH PERMISSION_SET = unsafe 

CREATE ASSEMBLY WindowsForm 
AUTHORIZATION dbo 
FROM "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll"
WITH PERMISSION_SET = unsafe 

CREATE ASSEMBLY FwSetting
AUTHORIZATION dbo 
FROM "C:\Path\That\Go\To\My\Project\FwSetting\FwSetting\bin\Debug\FwSetting.exe"
WITH PERMISSION_SET = unsafe 

4. SQL Server服务账户权限问题

Interop程序集最终要调用系统COM组件(防火墙API),如果SQL Server服务账户没有访问firewallapi.dll的权限,也可能导致依赖加载失败。

解决办法:

  • 确认SQL Server服务账户(默认是NT SERVICE\MSSQLSERVER)对C:\Windows\System32\firewallapi.dll有读取权限;
  • 确保操作账户拥有sysadmin服务器角色权限,避免权限不足导致的部署失败。

额外注意事项

  • 禁止在触发器中运行Windows Forms:SQL Server是服务端进程,无桌面交互权限,Windows Forms程序在服务端运行会无UI输出,甚至引发进程异常,建议将UI逻辑移除,改为纯后台处理;
  • SQL Server 2005安全风险:该版本已停止官方支持,存在安全漏洞,建议尽快升级到更高版本;使用UNSAFE权限的CLR程序集会带来潜在安全风险,需谨慎评估。

内容的提问来源于stack exchange,提问作者whitesky12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:03:29