【问题标题】:How to remove one folder from C:\Windows\winsxs?如何从 C:\Windows\winsxs 中删除一个文件夹?
【发布时间】:2010-05-29 11:05:21
【问题描述】:

我已经安装了: Microsoft Visual C++ 2008 SP1 可再发行包 (x86)

并获得以下文件夹: x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91 x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4926_none_508ed732bcbc0e5a

我已经卸载了重新分发包,但它们仍然存在。

我想删除它们,因为我想在不安装任何东西的情况下测试我的程序(我在另一台计算机上构建时包含了这些 dll)。

那么,如何从 C:\Windows\winsxs 中删除这些文件夹?

提前致谢:D

【问题讨论】:

    标签: c++ windows dll winsxs


    【解决方案1】:

    直接修改注册表或文件系统有点危险,因为有很多与已安装程序集相关的额外配置数据。

    这些文件仍然存在这一事实并没有造成太大的危害(WinSxS 是一个缓存),重要的是系统是否将它们视为已安装。我在这里写了一篇关于如何实现这一点的博客:http://blogs.msdn.com/b/talagrand/archive/2010/03/02/9973115.aspx

    【讨论】:

    • 哇,这是一篇没用的博文。与什么都不做的实用程序相比,它对 OP 的任务完全没用。你为什么不给出一个真实的答案,而不是向你的博客发送垃圾邮件并拒绝一个真正试图帮助这个受害者的答案。
    • 恕我直言,我对您的回答投了反对票,因为它主张破坏机器上的安装状态。删除这些注册表值会阻止使用 CRT9 的其他软件安装或正常运行(它们实际上不包含安装状态,因此其他安装程序不会修复损坏)。
    • 最初的问题是“我想在不安装任何东西的情况下测试我的程序”,暗示一台干净的机器。这篇博文是专门针对这类问题而写的——该工具从应用程序的角度确定机器是否被认为处于“干净”状态(通过程序查询,而不是检查文件是否存在),表明如果存在肯定响应,则无需删除文件。希望这对 OP 和其他人的帮助不仅仅是对问题的表面回答。
    • 博客链接现在已损坏,因此此答案不再有用。你能把重要的文字粘贴进去吗?
    【解决方案2】:

    您应该尝试通过(管理员)命令行使用 rem 命令删除它们。

    【讨论】:

    • Id 无效。它让我访问被拒绝!我使用了 del 和 rmdir 命令
    • UGH 大声笑,我在 Windows 上工作的不多。应该是aF提到的del和rmdir,你还必须以管理员身份运行命令行。
    【解决方案3】:

    您可以使用 Windows 附带的 dism 从 WinSXS 中删除一些不需要的东西。就我而言,它留下了一份 vc90 副本,但也许其他人会更幸运:

    1. 以管理员身份打开 Powershell

    2. dism /online /Cleanup-image /StartComponentCleanup

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-29
      • 2018-10-15
      • 2013-06-28
      • 2014-02-15
      • 2015-01-06
      • 1970-01-01
      • 2010-10-18
      相关资源
      最近更新 更多