跑步时
CREATE ASSEMBLY MyAssembly
FROM 'S:\SourceCode\TryUDF\bin\Debug\TryUDF.dll'
返回错误:
Could not find file 'SqlAccess.dll' in directory 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\'.
该程序集是使用 VS2008 构建的类库。SQL Server 是 2005。SqlAcesss.dll 位于上述位置,并且该 Binn 目录位于系统的 PATH 环境变量中。我该如何诊断导致此问题的原因?
答案1
如果它是使用 VS2008 构建的,请检查项目中对 SQL 对象的引用是否使用 SQL 2008 库。这可能是你的问题。你可能需要针对 SQL 2005 库重新编译你的库。
答案2
我现在找不到这篇文章,但我很确定它与未签名的 DLL 或 SQL Server 上的 TRUSTWORTHY 设置有关。错误显示未找到文件,但实际上意味着无法加载它(不是一回事!)。
如果您没有解决问题,我建议您在 stackoverflow.com 上重新提问。
答案3
已解决。由于我按照 Microsoft Baseline Security Analyzer 建议的程序保护 SQL Server,但可能不完整或不正确,SQL Server 服务帐户没有对 sqlaccess.dll 所在文件夹所需的权限。授予权限(读取、执行、列出)后,错误立即消失。