Dot-Net

無法添加對 dll 的引用

  • August 11, 2010

當我在 C# 應用程序中添加一個 .dll 文件作為引用時,它會顯示一個錯誤:

無法添加對“….dll”的引用。請確保該文件可訪問並且它是有效的程序集或 COM 組件。

ILDissassembler 說沒有有效的 CLR 頭,所以我嘗試使用 regsvr32 註冊它,這給了我另一個錯誤:

模組“”已載入,但對 DLLRegisterServer 的呼叫失敗,錯誤程式碼為“0x80004005”

我在 64 位 Windows 7 機器上使用 VS2010 終極版。可能是什麼問題呢?

感謝您的任何提示/回复

我使用依賴walker 來檢查dll 所具有的內部引用。原來它需要 VB 執行時 msvbvm60.dll,由於我的開發盒沒有安裝它,我無法使用 regsvr32 註冊它

這似乎是我現在最初問題的答案。

以下對我有用:

簡短的回答

通過命令行 (cmd) 執行以下命令:

TlbImp.exe cvextern.dll        //where cvextern.dll is your dll you want to fix.

並且將為您創建一個有效的 dll。

更長的答案

  • 打開命令
  • 找到 TlbImp.exe。可能位於 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin。如果找不到它,請轉到根文件夾(C:\ 或 D:)並執行:
dir tlbimp.exe /s              //this will locate the file.
  • 執行 tlbimp.exe 並將你的 dll 放在它後面。範例:如果您的 dll 是 cvextern.dll。你可以執行:
TlbImp.exe cvextern.dll
  • 在 tlbimp.exe 的同一文件夾中創建了一個新的 dll。您可以將其用作項目中的參考。

引用自:https://stackoverflow.com/questions/3456758