Windows中有没有linux上ld.so.conf.d的替代品? 5C

我所在的公司很多C++应用都是通过Dll提供接口为其他应用提供服务的,目前普遍的做法是放在系统目录SysWow64里。几百个同公司或兄弟单位的应用都这么搞的话,一批量安装就把系统目录搞的乱七八糟的。。。。

但是发布的linux版本就优雅多了,直接把so放在各个应用自己的目录里,然后只需要安装每个应用时在/etc/ld.so.conf.d里面添加一个包括应用库路径的文件在ldconfig就好了。卸载时也是直接删除这个文件再ldconfig即可。

请问有没有大神知道Windows下怎么达到象linux一样的效果?

根据回答补充下:
.net不是个选项,因为不可行,现有代码迁移到.net那是个大工程,公司不会同意,技术栈也不熟悉
环境变量也不行,因为应用比较多,都去写环境变量很危险,而且PATH貌似有长度限制。而且卸载咋办,能把添加的方便的删除吗?手动修改是不可行的,因为实际部署是批量安装的。

3个回答

现代的windows程序,使用.net框架库,可以有效解决所谓的dll hell问题

具体参考这个文章:https://www.cnblogs.com/mountain-mist/articles/1597877.html

另外,现在windows还支持容器化和虚拟化。

还可以把Dll放到其他应用程序所在的目录,windows的搜索路径可以找到它。或者放到一个目录,然后你修改系统PATH环境变量等。

1.自定义程序搜索路径研究standard-search-order-for-desktop-applications

2.最极端的情况下就是自己在一个公共目录定义一个类似ld.so.conf的文件, 之后在那里配置发布DLL的路径, 可以是自己的APP目录. 之后需要使用DLL的程序读取这个文件里的内容,并加载指定的dll或目录.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问