gpt4 book ai didi

windows - 如何从 SxS 缓存中删除未卸载的 DLL

转载 作者:可可西里 更新时间:2023-11-01 12:04:06 28 4
gpt4 key购买 nike

我有 VS 2008。我升级到 VS 2010,然后卸载了 VS 2008。

我有一个在我的机器上运行的测试,但无法在构建实验室的机器上加载。经过一些调试后,我意识到测试可执行文件仍然依赖于 msvcr90d.dll(这是一个 VC++ 2008 调试运行时库)。即使我已经卸载了 VS 2008,该测试在我的机器上仍然有效,因为该运行时 DLL 仍然存在于并行缓存 (%windir%/winsxs) 中。构建实验室机器没有 DLL,因此不会在那里加载。

卸载 VS 2008 不应该导致其所有运行时 DLL 从并排缓存中删除吗?

有没有办法可以从并行缓存中手动删除这些旧的 DLL?我希望能够轻松检测到我可能仍然有过时依赖项的其他地方。

最佳答案

您首先需要取得包含文件夹的所有权。那里的所有文件夹都将归 SYSTEM 或 TrustedInstaller 所有。所以这样做:

右键->属性->安全选项卡->高级->所有者选项卡->编辑->选择自己为所有者->勾选'替换子容器和对象的所有者->确定

完成后,您可以右键单击->属性->安全选项卡->完全控制->确定

或者如果您熟悉 cacls 命令,您可以从命令行执行此操作。

一旦您获得完全控制权,您就可以移动该文件夹,我强烈建议您移动文件夹而不是删除它。从 winsxs 中删除文件可能会破坏其他应用程序甚至 Windows。

关于windows - 如何从 SxS 缓存中删除未卸载的 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960759/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com