VSTOの開発で困ったことに関するメモ
Excelアドイン作成時、インストールされたExcelのバージョンが異なる開発環境(Excel2010の環境とExcel2013の環境)間でプロジェクトを編集していたところ、Excel2010の環境で『必要なバージョンの Microsoft Office アプリケーションがインストールされていないため、このプロジェクトをデバッグまたは実行することはできません。 』というエラーが出ることに気付いた。
Excel2010をターゲットとしたアドインなので、本来的にはExcel2010でも問題ないはずにも関わらずデバッグができない。
なお、ビルドしたアドインは正常にインストールが可能で、デバッグのみできない状況。
デバッグ時に呼び出すExcelのバージョンが、.projファイルでベタに指定されているのが原因。
.projファイルを直接編集して、開発環境にあわせてExcelのバージョンを指定し直すと解決する。
.projファイルの最下部のあたりに
ProjectExtensions / VisualStudio / FlavorProperties / ProjectProperties
ってノードがあるので、その中の2つの下記項目を書き換える。
バージョン番号のところは開発環境に合わせて書き換える。Officeの内部バージョンを指定する。
気付いたら上記コンパイルエラーが発生していた。
「相互運用型の埋め込み」Trueのアセンブリと、Falseにしているアセンブリが同じアセンブリを参照していると、上記コンパイルエラーが発生するみたいな?
型情報を埋め込むのか決められない、ってことっぽい。
問題が起きているアセンブリ参照のプロパティ「相互運用型の埋め込み」をTrueに揃える、または、Falseに揃えることで解決する。
参考:アセンブリ '<assembly2>' からの間接参照により、埋め込まれた相互運用機能アセンブリ '<assembly1>' の参照が作成されました。