DLL 通常不會像獨立程式一樣安裝。如果 Windows 顯示檔案遺失,正確做法取決於應由哪個元件提供該檔案:程式本身、Visual C++ Redistributable、DirectX 或 Windows。不要先下載檔案並將它複製到系統資料夾。本指南提供三種實用做法:還原提供 DLL 的元件、檢查 Windows,以及診斷 DLL。完成每種做法後,請測試發生錯誤的程式或遊戲是否能正常啟動。

是否真的需要手動安裝 DLL?

DLL 是應用程式連同其相依項目載入的程式庫,並非通用安裝套件。因此,「下載 xxx.dll 並放入 System32 」通常無法解決根本原因。該檔案可能還需要其他 DLL、與應用程式版本不相符,或具有不同的架構。

需要的項目 安全的做法
特定程式的 DLL 從官方來源重新安裝程式
vcruntime 、 msvcp 、 msvcr 安裝或修復相對應的 Microsoft Visual C++ Redistributable
d3dx9 、 xinput 、 d3dcompiler 還原官方 DirectX 元件或重新安裝遊戲
Windows 系統 DLL 先執行 DISM,再執行 SFC
開發人員提供的個別 DLL 嚴格遵循開發人員文件
來自網際網路的未知 DLL 不要手動安裝

如何安裝 DLL:方法快速比較

方法 最適合的情況 效果 使用者所需操作
安裝元件或重新安裝程式 單一應用程式出錯,或已知程式庫名稱 正確識別元件時效果很高 低
DISM 和 SFC 多個程式出錯或系統 DLL 問題 對 Windows 元件效果很高 中
Fionn DLL Fixer 原因不明,或需要檢查 DLL 與相依性 自動化診斷與修復 低

方法 1:安裝元件或重新安裝程式

適用時機: 錯誤只在一個程式中出現,或檔案名稱指向已知的執行階段。例如,若缺少 vcruntime140.dll ,請勿尋找單一檔案;應安裝或修復 Microsoft Visual C++ Redistributable。若為 d3dx9 、 xinput 或 d3dcompiler ,請使用遊戲的官方安裝程式或官方 DirectX 元件。

  1. 記下錯誤訊息中的完整 DLL 名稱及程式名稱。
  2. 如果錯誤只與一個程式有關,請開啟 設定 → 應用程式 → 已安裝的應用程式 。
    Windows 的程式與功能畫面
  3. 解除安裝有問題的程式,或在可用時使用其官方修復功能。
  4. 僅從開發人員官方網站或您取得程式的商店下載安裝程式。
  5. 安裝程式或其指定的元件,然後再次啟動程式。

驗證: 程式可啟動且不再顯示「找不到 DLL」訊息。若安裝程式再次要求相同檔案,請確認元件版本符合應用程式架構:32 位元程式使用 x86,64 位元程式使用 x64。

DLL 應安裝到哪裡:System32 還是 SysWOW64?

不要只依資料夾名稱決定位置。在 64 位元 Windows 中, System32 包含 64 位元系統程式庫,而 SysWOW64 包含 32 位元程式庫;這些名稱在歷史上看起來正好相反。不過,Windows 並非只從一個固定資料夾尋找 DLL:應用程式目錄、系統目錄及其他允許的搜尋路徑都可能參與。此外,DLL 本身也可能依賴其他程式庫。

是否需要透過 regsvr32 註冊 DLL?

預設不需要。 regsvr32 不是 DLL 安裝程式:它僅適用於支援對應自我註冊機制的 DLL 與 OCX。一般的 DLL 遺失錯誤並不表示需要註冊。只有在程式開發人員或官方文件明確要求註冊特定檔案,且提供適合的命令時,才使用 regsvr32 。

方法 2:修復 Windows 系統檔案

適用時機: 多個無關程式出現相同錯誤、Windows 發生故障後,或懷疑系統元件已損毀時。Microsoft 建議先執行 DISM,再執行 SFC。

DISM.exe Online Cleanup Image Restorehealth 命令
  1. 開啟 Windows 終端機(系統管理員) 。
  2. 執行下列命令並等待完成:
    DISM.exe /Online /Cleanup-image /Restorehealth
        
  3. 在 DISM 完成後執行下列命令:
sfc /scannow
  
  1. 如果 Windows 顯示已修復檔案,請重新啟動電腦。
  2. 再次啟動有問題的應用程式。

驗證: SFC 完成掃描並回報結果,且應用程式可開啟而不再出現原本的錯誤。詳細資訊請參閱 Microsoft 的 SFC 與 DISM 說明 。

方法 3:使用 Fionn DLL Fixer 檢查 DLL 與系統元件

適用時機: 需要診斷遺失、損毀或不相容的 DLL、System32 問題,或 DirectX、Visual C++、.NET、OpenAL 與 XInput 相依性,而手動判斷元件耗時太久時。適用於 Windows 的 Fionn DLL Fixer 支援掃描、修復及重新檢查。

  1. 啟動 Fionn DLL Fixer,並等待其自動完成 DLL 與系統問題掃描。 啟動 Fionn DLL Fixer
  2. 掃描完成後,按一下 Repair 以開始修復偵測到的問題。 掃描完成後,按一下「Repair」以自動修復所有偵測到的 DLL 與系統問題
  3. 等待程序完成;處理期間按鈕會顯示 Fixing 。 等待修復作業進行中
  4. 在確認對話方塊中按一下 Ok ;系統提示時請重新啟動電腦。 修復完成時,在確認對話方塊中按一下「Ok」
  5. 若重新啟動後錯誤仍存在,請按一下 Recheck ;如偵測到新問題,再次選擇 Repair 。 若重新啟動後問題仍存在,按一下「Recheck」以再次掃描

驗證: 重新掃描不再顯示原本的問題,且應用程式可正常啟動。此方法可簡化診斷,但若損毀的是特定程式本身的檔案,仍無法取代重新安裝該程式。

結論

若要正確在 Windows 安裝 DLL,請先判斷提供該檔案的元件,而非為單一檔案尋找資料夾。單一程式出錯時,重新安裝該程式或官方執行階段;多個程式發生系統性錯誤時,先執行 DISM,再執行 SFC。如果錯誤來源不明,且需要檢查 DLL、系統路徑與遊戲相依性,可使用 Fionn DLL Fixer 。只有問題程式成功啟動才能確認結果。若訊息沒有改變,請保留完整錯誤文字並聯絡開發人員的官方支援。

常見問題

可以把 DLL 放進程式資料夾嗎?

只有在開發人員官方文件明確針對特定程式版本這樣要求時才可以。其他情況下,請重新安裝程式或其執行階段;這樣才能還原相容的一組相依項目。

為什麼 64 位元 DLL 不應自動放入 SysWOW64?

在 64 位元 Windows 中, SysWOW64 是為 32 位元系統程式庫而設。不過,手動選擇資料夾仍不是通用解法,因為 DLL 會依搜尋規則載入,且可能依賴其他檔案。

何時需要使用 regsvr32 命令?

僅適用於支援自我註冊的 DLL 或 OCX,並且必須依開發人員的明確指示使用。它無法修復大多數 DLL 遺失訊息。

vcruntime140.dll 應如何處理?

從官方來源安裝或修復相對應的 Microsoft Visual C++ Redistributable,或重新安裝需要它的程式。請勿從非官方目錄下載單一檔案。

DISM 與 SFC 都需要執行嗎?

Microsoft 建議依序使用 DISM,再使用 SFC 來修復系統檔案。這些命令無法取代重新安裝個別程式的檔案。