1

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

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

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

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

4

1 回答 1

2

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

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

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

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

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

于 2011-08-05T23:10:09.773 回答