Visual Studio致命错误0x80131c39

我正在一个项目,将读取一个Excel文档,并返回一个数据集。 错误只发生在试图执行这个代码时。

我不明白这个代码有什么问题我尝试过使用多个Excel文件。

public static DataSet ImportExcelXLS(string FileName, bool hasHeaders) { string HDR = hasHeaders ? "Yes" : "No"; string strConn; if (FileName.Substring(FileName.LastIndexOf('.')).ToLower() == ".xlsx") strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=0\""; else strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=" + HDR + ";IMEX=0\""; DataSet output = new DataSet(); using (OleDbConnection conn = new OleDbConnection(strConn)) { conn.Open(); DataTable schemaTable = conn.GetOleDbSchemaTable( OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); foreach (DataRow schemaRow in schemaTable.Rows) { string sheet = schemaRow["TABLE_NAME"].ToString(); if (!sheet.EndsWith("_")) { try { OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + sheet + "]", conn); cmd.CommandType = CommandType.Text; DataTable outputTable = new DataTable(sheet); output.Tables.Add(outputTable); new OleDbDataAdapter(cmd).Fill(outputTable); } catch (Exception ex) { throw new Exception(ex.Message + string.Format("Sheet:{0}.File:F{1}", sheet, FileName), ex); } } } } return output; } 

寻找具体的错误产生的信息,这意味着CORDBG_E_MISMATCHED_CORWKS_AND_DACWKS_DLLS

对另一个具有相同错误代码的SO线程的进一步研究表明,这意味着在CLR版本和debugging器版本之间存在致命的不匹配。 这听起来很糟糕。

据说有人解决之前通过恢复到.NET 3.5使用…它似乎并不是你的代码具体。 更多的DLL版本的问题。

引用: