2

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 の下で相互運用機能を参照することにより、相互運用機能を使用できます。

4

1 に答える 1

0

もう少し実験して、ようやく問題の解決策を見つけたので、ここで共有したいと思います。それは間違いなく、あるべき姿ではありません。誰かがその問題の背後にある理由を知っていれば、私は本当に感謝しています.

この問題は、参照の「指定されたバージョン」プロパティを false に設定することで解決できます。新しいプロジェクトは、C:\Windows\assembly\GAC\Microsoft.Office.Interop.Excel\12.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll の下で相互運用機能を参照することにより、相互運用機能を使用できます。

于 2013-07-24T16:48:48.503 に答える