多くの理由で、ラップトップに MSExcel 2003 と MSExcel 2007 をインストールしました。各バージョン (ドキュメント レベル プロジェクトとアプリケーション レベル プロジェクト) の特定のプロジェクトを開発するには、両方のバージョンが必要です。ここで、Excel ファイルを開き、CustomXMLParts を読み取り、新しい Excel ファイルを書き込む WinForm プロジェクトを実行する必要があります。..\Visual Studio Tools for Office\PIA\ Office12 \Microsoft.Office.Interop.Excel.dll ライブラリ (Excel 2007 用)を使用する Microsoft.Office.Interop.Excel への参照を使用しています。そして、このコードの場合:
Microsoft.Office.Interop.Excel.Application excelApplication;
excelApplication = new Microsoft.Office.Interop.Excel.ApplicationClass();
string version = excelApplication.Version;
この時点でバージョンは "11.0" ですが、Excel 2007 を開く必要があり、"12.0" である必要があり、プログラムが CustomXMLParts を取得しようとすると、2003 にはこのメソッドが存在しないため、例外がスローされます。
Excell 2003 をアンインストールすると正常に動作しますが、両方 (2003 と 2007) で作業する必要があります。Excel 2003 を再インストールすると、再び失敗します。Interop.Excel 参照のプロパティ「特定のバージョン」をチェックして、それが正しいことを確認し、app.config oldVersion="12.0.0.0" を変更して Excel 2003 と互換性を持たないようにしましたが、何も起こりません。 :
<assemblyIdentity name="Microsoft.Office.Interop.Excel" publicKeyToken="71E9BCE111E9429C" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="12.0.0.0"/>
何か案が?
Visual Studio 2008 と Visual Studio Tools for Office を使用しています。よろしくお願いします。