程序根目录突然多了[api-ms-win-core-*.dll]文件

2022-09-30 11:19:08 +08:00
 kidzgy

https://pic1.imgdb.cn/item/63365f1316f2c2beb12a6ab5.png

很奇怪,我一个魔兽争霸,根目录原先是没有这些个文件的,突然就多了这么多 DLL ,我纳闷,这些 DLL 我系统盘已经有了的,系统直接加载就好了,干嘛还会自动复制到程序目录一份呢?这个要怎么解决?我发现另外的程序在运行一段时间之后,根目录也会有自动生成这些文件。不知道要怎么禁止这种行为?

1149 次点击
所在节点    问与答
4 条回复
Otho
2022-09-30 11:22:22 +08:00
忍着 or 不玩 or 换其他系统
ysc3839
2022-09-30 11:46:21 +08:00
这些是从 Win8 开始引入的 API sets ,原因是因为历史设计问题,Windows 各类 API 没有进行细致的分类,同时不同平台的 Windows 可能会出现同一个 API 被分到不同名称的 DLL 中的情况,因此微软把 API 进行了细致的分类。
在支持 API sets 的系统中这些 DLL 不是真实存在,系统会自动重定向到真正的 DLL 中。但是在不支持 API sets 的系统中就只能通过 forwarder DLL 进行重定向了。
你会在程序目录下看到,大概率是因为程序附带了 Universal CRT(UCRT)。UCRT 是 Win8 引入的,跟随操作系统发布的 CRT ,因此使用了 API sets ,但是实际上 UCRT 不强依赖新版本的系统,Win7 也能用,在 Win7 下使用时需要补齐 API sets ,于是程序就把这些都附带上了。
kidzgy
2022-09-30 14:50:41 +08:00
@ysc3839 如果程序采用了 UCRT ,那就无法禁止 DLL 自动复制到程序文件夹了,是这个意思吧?
ysc3839
2022-09-30 19:20:42 +08:00
@kidzgy 不完全是,程序还可以选择不支持 Win7 ,就不需要附带那些 DLL 。
另外我不知道能否把 UCRT 安装到 Win7 系统中,如果可以的话程序也不需要附带 UCRT 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/883981

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX