Dot-Net
無法添加對 dll 的引用
當我在 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。您可以將其用作項目中的參考。