2011-08-05 41 views
1

我有VS 2008年我升級到VS 2010和VS卸載2008年如何從血散緩存中刪除卸載DLL

我有我的機器上運行的測試,但未能在構建機器上加載實驗室。經過一些調試後,我意識到測試可執行文件仍然依賴於msvcr90d.dll(這是一個VC++ 2008調試運行時庫)。儘管我已經卸載了VS 2008,但測試在我的機器上運行,因爲該運行時DLL仍然存在於並行緩存(%windir%/ winsxs)中。構建實驗室機器沒有DLL,所以它不會在那裏加載。

不應該卸載VS 2008導致所有的運行時DLL從並行緩存中刪除?

有沒有一種方法可以手動從並排緩存中刪除這些舊的DLL?我希望能夠輕鬆檢測到其他可能仍然存在過時依賴性的地方。

+0

只需刪除文件。 –

+0

@Hans Passant:即使提升爲管理員,我也會收到一個對話框,說我無法刪除系統文件。 「您需要執行此操作的權限[。]您需要SYSTEM的權限才能對此文件進行更改[。]」 –

+0

Erm,wait,what * exact * file you you want to delete。發佈完整路徑。 –

回答

2

您首先需要獲取包含文件夾的所有權。所有文件夾將由SYSTEM或TrustedInstaller擁有。所以這樣做:

右鍵單擊 - >屬性 - >安全選項卡 - >高級 - >所有者標籤 - >編輯 - >選擇自己作爲業主 - >剔「子容器替換所有者和對象 - > OK

一旦你完成了,你可以做右鍵點擊 - >屬性 - >安全選項卡 - >給自己完全控制 - >確定

或者如果你熟悉cacls命令,你可以從命令行。

完全控制後,您可以移動該文件夾,我強烈建議您刪除它。從winsxs刪除文件很可能會破壞其他應用程序甚至Windows。