在Windows上安装共享DLL的位置

BCr*_*ran 6 windows deployment dll install

我有一个可以安装在Windows(XP/Vista/7)上的驱动程序.它是通过第三方应用程序链接到的本机C++ DLL访问的,也是Winsock Provider(WSP).它曾经安装在System32下,但是看到了建议,我把它改为在ProgramFiles下安装.

现在,问题是人们不得不将其复制回System32或者只要他们想在自己的应用程序中使用它就将其复制到应用程序目录中,因为当应用程序尝试使用Windows时,Windows不会搜索ProgramFiles下的安装目录加载DLL.

我一直无法找到任何讨论此问题的Microsoft文档,因此如果不应该使用System32,那么应该在哪里安装共享DLL?

Han*_*ant 7

Windows并排缓存.Backgrounder信息在这里,技术参考在这里.

除了微软之外,我还没有看到任何人真正这样做过.值得注意的是,MSFT放弃了针对VS2010的C/C++ CRT和MFC运行时DLL的winsxs部署,这导致了太多问题.他们回到了c:\ windows\system32.虽然这个(GAC)的管理等价物很强大.可能更好的工具支持.

我相当肯定,大家都会选择应用本地部署.


Han*_*son 5

因为它是一个链接到你的驱动程序的DLL可能它不是一个问题,但我要小心尝试共享DLL,而是试图让所有客户端应用程序的开发人员将他们自己的dll版本保存在他们的应用程序文件夹中.我在DLL Hell中有太多的乐趣想要更多奇怪的错误,因为AppX用旧的版本覆盖了AppY等旧版本.