Excel 2007 がインストールされているサーバーの SSIS スクリプト タスクで Excel Interop を使用しています。
数日前から、スクリプト タスクを開こうとするとエラーが表示されます。コードを開くたびに、Interop への参照が黄色の警告サインでマークされ、名前空間を参照できません。「参照の追加」から再度追加することはできず、COM タブに Excel オブジェクト ライブラリを追加しようとすると、黄色の警告サインも追加されます (エラー メッセージが見つかりませんでした)。
ただし、変更を保存せずにプロジェクト全体を実行すると、問題なく動作します。したがって、相互運用性は機能しているように見えますが、Visual Studio ではなぜか見つかりません。PrimaryInteropAssemblies を再度インストールしようとしましたが、成功しませんでした。相互運用アセンブリは、c:\windows\assembly の下にあります。奇妙なことに、アセンブリ用のプロセッサ アーキテクチャが指定されていませんが、それは私の開発マシン上にあります。アセンブリをアンインストールしてから再度インストールしようとしましたが、権限が不十分なために実行できませんでした (管理者であっても)。
gacutil を使用するために数日前に Windows SDK をインストールする必要がありましたが、それが参照の欠落の理由でしょうか?
プログラミング言語は、Visual Studio 2010 を使用した C# 2010 です。
ありがとう、
編集:解決策を見つけましたが、想定どおりには機能しません。仕組みは次のとおりです。 この問題は、参照の「指定されたバージョン」プロパティを false に設定することで解決できます。新しいプロジェクトは、C:\Windows\assembly\GAC\Microsoft.Office.Interop.Excel\12.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll の下で相互運用機能を参照することにより、相互運用機能を使用できます。