繁体   English   中英

缺少编译器所需的成员“microsoft.csharp.runtimebinder.binder.convert”

[英]Missing compiler required member 'microsoft.csharp.runtimebinder.binder.convert'

我第一次使用 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];

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

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

除了@Alex Ghiondea 所说的,请转到您项目的参考部分:

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

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

在此处输入图片说明

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

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

在此处输入图片说明

Install-Package Microsoft.CSharp -Version 4.7.0

我正在使用 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

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

我也有这个问题。 如果您右键单击并选择“属性”(突出显示项目时),则会有一个复选框显示:自动生成绑定重定向。 这为我修好了。

我使用的是 Visual Studio 2017,它是一个 C# 类库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM