0

相互運用機能を使用するBooプロジェクトをコンパイルすると、次のエラーが発生します。

textbox = _ActiveWorkSheet.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, left, top, width, height)

メソッド'Microsoft.Office.Interop.Excel.Shapes.AddTextbox(Microsoft.Office.Core.MsoTextOrientation、single、single、single、single)'の最適なオーバーロードは、引数リスト'(Microsoft.Office.Core)と互換性がありません.MsoTextOrientation、single、single、single、single)'。(BCE0017)

署名が同じであることがわかるように、問題はMsoTextOrientationを認識しているようです。

2010年にPIAをインストールし、COM「MicrosoftOffice 14.0 Object Library」への参照を追加して、そこからMicrosoft.Office.Core名前空間をインポートできます。メソッドのシグネチャでバラバラになります。

Sharpdevelop3.2.1に組み込まれているbooコンパイラバージョン0.9.1.3287を使用しています。

何か案は?

4

1 に答える 1

2

わかった、

Microsoft.Office.Core名前空間をプロジェクトに組み込むには2つの方法があります。

  1. COMから「MicrosoftOffice14.0オブジェクトライブラリ」をインポートします(参照では「Office」と表示されます)
  2. GACから「office」をインポートします(参照では「office」と表示されます)

GACの追加参照リストに「Microsoft.Office.Core」ではなく「office」と表示されている理由がわかりません。そのため、私はそれを見逃し、代わりにCOMを調べてしまい、名前空間が正常にインポートされたのを見て、すべて問題ないと思いました...

異なるアセンブリからの同一の名前空間がどのように処理されるかについては十分にわかりませんが、タイプに互換性がないというフラグが立てられている可能性は、単なるboo / Sharpdevelopの問題ですか?Visual Studio / C#で発生した場合は、もっと多くの人がこの問題を抱えていると思います...

于 2012-05-22T14:12:10.017 に答える