EnvDTE 和 VSLangProj 組件搭配使用時的錯誤
如果建立的專案要參考一個或多個 VSLangProj 組件和 EnvDTE 組件,在執行階段可能偶爾會收到下列錯誤訊息:
「未處理的例外狀況: System.IO.FileNotFoundException: 載入檔案 'EnvDTE, Version=7.0.3300.0 時發生錯誤」
這個錯誤是由於執行階段型別解析衝突所引起。 換句話說,Visual Studio 2005 中所附的 EnvDTE 組件是 8.0.xx 版,但是專案的組態參考卻要尋找此組件的舊版,也就是 7.0.xx 版。 若要修正這個問題,必須在專案的組態 (.config) 檔中加入新版 EnvDTE 組件的繫結重新導向。 這麼做才能讓 Visual Studio 載入新版的 EnvDTE 組件,而且不再發生錯誤。
若要這麼做,請在專案中加入「應用程式組態檔」,然後以下列程式碼取代其內容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-
com:asm.v1" appliesTo="v2.0.50318">
<dependentAssembly>
<assemblyIdentity name="EnvDTE" publicKeyToken=
"b03f5f7f11d50a3a"/>
<bindingRedirect oldVersion="7.0.3300.0"
newVersion="8.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
在您建置 EXE 時才會發生這個錯誤,因為 DLL 並沒有組態檔。