次の方法で共有


EnvDTE アセンブリを VSLangProj アセンブリと共に使用した際に発生するエラー

EnvDTE アセンブリおよび 1 つ以上の VSLangProj アセンブリを参照するプロジェクトを作成した場合に、次の実行時エラーが発生することがあります。

"ハンドルされていない例外: System.IO.FileNotFoundException: ファイル 'EnvDTE, Version=7.0.3300.0' を読み込み中にエラーが発生しました。"

このエラーは、実行時の型解決における競合が原因で発生します。つまり、Visual Studio 2005 に付属している EnvDTE のバージョンが 8.0.xx であるにもかかわらず、プロジェクトの構成では、このアセンブリの以前のバージョン 7.0.xx を参照していることが原因です。この問題を修正するには、新しいバージョンの EnvDTE 用のバインディング リダイレクトを、プロジェクトの構成 (.config) ファイルに追加する必要があります。これにより、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>

このエラーは、DLL に構成ファイルがないために、EXE をビルドしている場合のみ発生します。

参照

処理手順

方法: オートメーション名前空間に参照を追加する

その他の技術情報

オートメーション アセンブリおよび DTE2 オブジェクトの参照