it-swarm.com.ru

Отсутствует компилятор, требуется член 'Microsoft.csharp.runtimebinder.binder.convert'

Я впервые использую Excel для чтения данных в c # с Selenium WebDriver, но когда я строю этот код, появляется сообщение об ошибке:

«Отсутствует компилятор, необходимый член« 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];

Пожалуйста, дайте мне знать, чего не хватает? Спасибо!

13
Excellent

Ссылочные сборки для Office доступны через тип возврата dynamic. Для возможности компиляции вам нужно добавить ссылку на Microsoft.CSharp.dll.

41
Alex Ghiondea - MSFT

В дополнение к тому, что говорит @Alex Ghiondea, перейдите в раздел ссылок вашего проекта:

Щелкните правой кнопкой мыши по ссылкам и проверьте предложенные параметры.

  1. Нажмите на ссылку «Добавить», и появится модальное меню с левым меню (сборки, проекты, COM и обзор).
  2. Нажмите Сборки
  3. Проверьте Microsoft.CSharp и нажмите Ok.
  4. Очистите и постройте свой проект, и ошибка должна исчезнуть. 

 enter image description here

21
eduardo92

Я использую Visual Studio 2017 версии 15.7.1 (не уверен, имеет ли это значение или нет, но эта ошибка, похоже, возникла после обновления). У меня был проект, нацеленный на .NET Framework 3.5. Итак, в дополнение к другим ответам, предоставленным для добавления Microsoft.CSharp, мне нужно было обновить этот проект до .NET Framework 4.5, а затем Microsoft.CSharp появился в разделе Сборки, когда я пошел, чтобы добавить ссылку. До этого мне нужно было найти абсолютный путь к DLL, который, похоже, не работал.

Для тех, кто не может выполнить обновление до 4.5, вы можете попробовать установить для параметра EmbedInteropTypes значение False для всех ссылок на взаимодействия в вашем файле csproj, как показано здесь: http://answers.flyppdevportal.com/MVC/Post/Thread/b1554cdd- ad9e-4453-b4d6-8eb03da175ea? category = visualstudiogeneral

4
brrrrth

Если ваш проект ориентирован на .Net Core или .Net Standard, то установка пакета Microsoft.CSharp NuGet решит эту ошибку.

2
Kolappan Nathan