簡體   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