如何强制桌面应用程序使用本地/并行 DLL?

如何强制桌面应用程序使用本地/并行 DLL?

我安装了一个自定义软件,该软件随特定版本的 一起提供sqlserverspatial110.dll。它与可执行文件本身位于同一目录中。该软件在此设置中运行良好。

在该计算机(安装 SQL 服务器)上安装 Veeam Backup 代理后,我sqlserverspatial110.dll在 Veeam Backup 安装目录和 中又发现了一个C:\Windows\System32\。从那时起,上面的定制软件一直拒绝启动,因为它在所述 DLL 中找不到符号。

我认为定制软件没有加载其本地 DLL,因为 Veeam Backup 已经加载了具有相同名称(但版本不兼容)的 DLL。

我认为,我可以强制自定义软件使用其本地 DLL,方法是动态链接库重定向,但没有效果。

我如何强制软件使用其自己的并行 DLL,而 Veeam Backup 可以使用其他版本的 DLL(并行或来自C:\Windows\System32\)?

笔记:我无法访问自定义软件的源代码,也无法重新编译它。因此,我并不是在寻找包括修改源代码或更改构建参数的解决方案。相反,我正在寻找作为软件用户的解决方案。

相关内容