繁体   English   中英

没有'Microsoft.ACE.OLEDB.12.0'错误的解决方案

[英]No solution for 'Microsoft.ACE.OLEDB.12.0' error

我在一个控制器中遇到了MVC C#应用程序的问题。

以下代码继续给出错误:

 *The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.*

代码如下:

var excel = new ExcelQueryFactory("~/App_Data/uploads/" + tempName);
var usersForImport = from c in excel.Worksheet<User>()
                        select c;
int count = usersForImport.Count();

for (int i = 0; i < count; i++)
{
    User user = new User();
    user = usersForImport.Skip(i).First();
    db.Users.Add(user);
    db.SaveChanges();
}

我已经尝试过以前帖子中的2个解决方案,因为我认为这个问题是相同的,但它们并没有解决问题。

我尝试过的两个解决方案是安装Microsoft Access数据库引擎或为x86设置目标平台。

代码依赖于'linqtoexcel'包。

还有其他人遇到过这些问题吗? 有解决方案吗

对于64位应用程序,有两种版本的ACE驱动程序可用:

适用于Office 2007的http://www.microsoft.com/en-us/download/details.aspx?id=23734

适用于Office 2010的http://www.microsoft.com/en-us/download/details.aspx?id=13255

我相信Office 2007版本有ProgId'Microsoft.ACE.OLEDB.12.0',所以我会试试这个而不是Office 2010,我认为它有ProgId'Microsoft.ACE.OLEDB.14.0'。

根据您的描述,看起来linqtoexcel包可能依赖于Office 2007版本。

我已经在Build选项卡的项目属性中解决了这个问题。 我已将平台目标从x64更改为x86

暂无
暂无

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

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