我有VS 2008。我升级到VS2010,并卸载了VS2008。
我有一个测试在我的机器上运行,但在构建实验室的机器上加载失败。经过一些调试之后,我意识到测试可执行文件仍然依赖于msvcr90d.dll (这是一个VC++ 2008调试运行时库)。即使我已经卸载了VS2008,测试仍然可以在我的机器上运行,因为运行时DLL仍然存在于并行缓存(%windir%/winsxs)中。build lab机器没有DLL,因此不会在那里加载。
卸载VS2008不应该导致所有的运行时DLL从并行缓存中删除吗?
有没有办法手动从并排缓存中删除这些旧的DLL?我希望能够很容易地检测到我可能仍然有过期依赖的其他地方。
发布于 2011-08-06 07:10:10
您首先需要取得包含文件夹的所有权。那里的所有文件夹将归SYSTEM或TrustedInstaller所有。所以要这样做:
右键单击->属性->安全选项卡->高级->所有者选项卡->编辑->选择您自己作为所有者->勾选‘替换子容器和对象上的所有者->确定
完成后,您可以右键单击->属性->安全选项卡->让您自己完全控制->确定
或者,如果您熟悉cacls命令,则可以从命令行执行此操作。
一旦你有了完全的控制权,你可以移动文件夹,我强烈建议这样做,而不是删除它。从winsxs中删除文件可能会破坏其他应用程序,甚至Windows。
https://stackoverflow.com/questions/6960759
复制相似问题