【发布时间】:2017-03-20 21:50:50
【问题描述】:
我有一个多项目解决方案 (C#),我正在尝试将其部署到我们的一个测试服务器。所有项目都是为 x64 构建的,在适用的情况下禁用了“首选 32 位”。
一些项目引用了使用 SQLite 加密扩展(不由 nuget 管理)的 SQLite dll 集。当我在本地开发机器上构建和安装解决方案时,应用程序和 Windows 服务能够正常运行,没有问题。
当我尝试在我们的一台运行 64 位 Windows Server 2012 的测试服务器上安装相同的软件包时,我收到“无法加载 DLL 'SQLite.Interop.dll':找不到指定的模块。 "每当我尝试与 SQLite 数据库通信时。我已经三次检查安装后所有适当的 DLL 是否都在程序文件夹中。
在我的 VS 解决方案中,我尝试创建 x86/x64 文件夹,将 Copy 设置为 Always,但无济于事。我还将本地安装文件夹中的 DLL 复制到服务器文件夹中,以查看是否有任何问题。
可能是权限问题吗?我是高级用户,但不是服务器上的完整管理员,而我是我机器上的完整管理员。我已经尝试手动修改程序文件夹的权限以查看这是否是一个问题,但也没有运气。
总而言之,该项目是为 x64 明确构建的,它在正确的文件夹中具有正确的 DLL,并且可以在本地安装上运行。我不知道为什么它在服务器安装上不起作用。我查看了 StackOverflow、MSDN 和 SQLite 网站上的无数线程,通常都建议使用 x86/x64 文件夹,但这对我不起作用。我希望有人可以在这里帮助我。
谢谢!
【问题讨论】:
标签: c# .net sqlite dll windows-server-2012