缺少编译器需要成员'microsoft.csharp.runtimebinder.binder.convert'

Exc*_*ent 30 c# excel

我第一次使用Excel用Selenium WebDriver读取c#中的数据,但是当我构建这段代码时,会弹出一个错误:

"缺少编译器需要成员'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];
Run Code Online (Sandbox Code Playgroud)

请让我知道缺少什么?谢谢!

Ale*_*SFT 72

Office的引用程序集通过dynamic返回类型公开.为了能够编译,您需要添加引用Microsoft.CSharp.dll.

  • 对于那些在这里路过的人。我新创建的.NET Standard程序包出现此构建错误,因此我添加了[Microsoft.CSharp Nuget程序包](https://www.nuget.org/packages/Microsoft.CSharp/),然后**关闭并重新打开了Visual Studio * *! (5认同)

edu*_*o92 36

除了@Alex Ghiondea所说的内容之外,请转到项目的参考部分:

右键单击引用并检查提示选项.

  1. 单击添加引用,将出现左侧菜单(程序集,项目,COM和浏览)的模式.
  2. 单击"装配"
  3. 检查Microsoft.CSharp并单击"确定".
  4. 清理并构建项目,错误应该消失.

在此输入图像描述


Kol*_*n N 19

如果您的项目面向.Net Core或.Net Standard,则安装Microsoft.CSharp NuGet软件包将解决此错误。


Kar*_* VK 17

使用 NuGet 将 Microsoft.CSharp 的引用添加到您的项目中。

在此处输入图片说明

或者

Install-Package Microsoft.CSharp -Version 4.7.0 为项目


Sha*_*tfi 6

右键单击项目名称(在解决方案资源管理器中),在程序集中添加引用:Microsoft.CSharp,然后再次右键单击并清理。就这样。


brr*_*rth 5

我正在使用Visual Studio 2017版本15.7.1(不知道这是否重要,但是更新后似乎已经出现了此错误)。我有一个针对.NET Framework 3.5的项目。因此,除了提供添加Microsoft.CSharp的其他答案外,我还需要将该项目更新为.NET Framework 4.5,然后当我添加引用时,Microsoft.CSharp出现在“程序集”下。在此之前,我必须找到DLL的绝对路径,该路径似乎不起作用。

对于无法升级到4.5的用户,您可以尝试将csproj文件中所有互操作引用的EmbedInteropTypes设置为False,如下所示:http ://answers.flyppdevportal.com/MVC/Post/Thread/b1554cdd-ad9e- 4453-b4d6-8eb03da175ea?category = visualstudiogeneral

  • 我有与此完全相同的问题,不得不做更多的事情来解决它,因此产生了额外的响应。而且,事实证明,如果不更新解决方案的其余部分,我将无法更新一个项目,这是不可行的,因此,使用其他地方未提供的替代解决方案进行编辑。 (3认同)
  • 非常感谢您的留言。我一直在寻找 3.5 项目的解决方案。 (2认同)