web-dev-qa-db-fra.com

Membre du compilateur manquant requis 'Microsoft.csharp.runtimebinder.binder.convert'

J'ai utilisé pour la première fois Excel pour lire des données en c # avec Selenium WebDriver, mais lorsque je construis ce code, une erreur s’affiche:

"Compilateur manquant requis membre 'Microsoft.csharp.runtimebinder.binder.convert'"

et le code d'utilisation d'Excel est marqué en rouge ci-dessous:

 Excel.Application x1Appl = new Excel.Application();
 Excel.Workbook x1WorkBook = x1Appl.Workbooks.Open(@"C:\app\o\SearchBy.xlsx");

 Excel._Worksheet x1WorkSheet = x1WorkBook.Sheets[1];

S'il vous plaît laissez-moi savoir ce qui manque? Je vous remercie!

13
Excellent

Les assemblys de référence pour Office sont exposés via le type de retour dynamic. Pour pouvoir compiler, vous devez ajouter une référence à Microsoft.CSharp.dll.

41

En plus des propos de @Alex Ghiondea, consultez la section références de votre projet:

Faites un clic droit sur les références et vérifiez les options proposées.

  1. Cliquez sur Ajouter une référence et un modal avec le menu de gauche (assemblages, projets, COM et parcourir) apparaîtra.
  2. Cliquez Assemblées
  3. Vérifiez Microsoft.CSharp et cliquez sur OK.
  4. Nettoyez et construisez votre projet et l'erreur devrait disparaître. 

 enter image description here

21
eduardo92

J'utilise Visual Studio 2017 version 15.7.1 (je ne suis pas sûr que cela compte ou non, mais cette erreur semble avoir été corrigée après la mise à jour). J'ai eu un projet qui ciblait .NET Framework 3.5. Ainsi, en plus des autres réponses fournies pour l'ajout de Microsoft.CSharp, je devais mettre à jour ce projet vers .NET Framework 4.5, puis Microsoft.CSharp est apparu sous Assemblées lorsque j'ai ajouté la référence. Avant cela, je devais trouver le chemin absolu vers la DLL, qui ne semblait pas fonctionner.

Pour ceux qui ne peuvent pas passer à la version 4.5, vous pouvez essayer de définir FalseInteropTypes sur False pour toutes les références d'interopérabilité de votre fichier csproj, comme indiqué ici: http://answers.flyppdevportal.com/MVC/Post/Thread/b1554cdd- ad9e-4453-b4d6-8eb03da175ea? category = visualstudiogeneral

4
brrrrth

Si votre projet cible .Net Core ou .Net Standard, l'installation du package Microsoft.CSharp NuGet résoudra cette erreur.

2
Kolappan Nathan