私は初めてSelenium WebDriverを使用してc#でデータを読み取るためにExcelを使用しましたが、このコードをビルドするとエラーが表示されます。
「欠落しているコンパイラにはメンバー 'Microsoft.csharp.runtimebinder.binder.convert'が必要です」
また、Excelを使用するためのコードは赤でマークされています。
Excel.Application x1Appl = new Excel.Application();
Excel.Workbook x1WorkBook = x1Appl.Workbooks.Open(@"C:\app\o\SearchBy.xlsx");
Excel._Worksheet x1WorkSheet = x1WorkBook.Sheets[1];
何が足りないのか教えてください。ありがとうございました!
Officeの参照アセンブリは、dynamic
戻り型を介して公開されます。コンパイルするには、Microsoft.CSharp.dll
への参照を追加する必要があります。
プロジェクトが.Net Coreまたは.Net Standardをターゲットにしている場合、 Microsoft.CSharp NuGetパッケージをインストールするとこのエラーが解決します。
Visual Studio 2017バージョン15.7.1を使用しています(これが重要かどうかはわかりませんが、更新後にこのエラーが発生したようです)。 .NET Framework 3.5を対象としたプロジェクトがありました。そのため、Microsoft.CSharpを追加するために提供された他の回答に加えて、このプロジェクトを.NET Framework 4.5に更新する必要があり、参照を追加しようとするとMicrosoft.CSharpがAssembliesの下に表示されました。それまでは、DLLへの絶対パスを見つける必要がありましたが、機能しなかったようです。
4.5にアップグレードできない場合は、次に示すように、csprojファイル内のすべての相互運用参照に対してEmbedInteropTypesをFalseに設定してみてください: http://answers.flyppdevportal.com/MVC/Post/Thread/ b1554cdd-ad9e-4453-b4d6-8eb03da175ea?category = visualstudiogeneral
私もこの問題を抱えていました。右クリックして[プロパティ](プロジェクトが強調表示されている間)を選択すると、[バインディングリダイレクトを自動生成する]というチェックボックスが表示されます。これは私のためにそれを修正しました。
Visual Studio 2017を使用していますが、これはC#クラスライブラリです。
(ソリューションエクスプローラーで)プロジェクト名を右クリックし、アセンブリ内の参照:Microsoft.CSharpを追加し、もう一度右クリックして[クリーン]をクリックします。それで全部です。