'Microsoft.ACE.OLEDB.12.0' 使用 SqlConnection 时未注册

'Microsoft.ACE.OLEDB.12.0' not registered when using SqlConnection

我遇到了以下情况:

我正在使用 System.Data.SqlClient.SqlConnection 与我的数据库通信。

using (var con = new SqlConnection(_settings.Database_SqlConnectionString))
{
    con.Open();

    var qryDateChanged = "...;";
    DateTime dateChanged;

    if (DateTime.TryParse(new SqlCommand(qryDateChanged, con).ExecuteScalar().ToString(), out dateChanged))
    {
        if (lastWriteTime > dateChanged)
        {
            var stUpdate = "...";
            new SqlCommand(stUpdate, con).ExecuteNonQuery();
        }
    }
}

我的连接字符串是这样构建的:

public String Database_SqlConnectionString
{
    get 
    {
        var conString = 
                $"Data Source={Database_Server};" +
                $"Initial Catalog={Database_Database};" +
                $"User Id={Database_User};" +
                $"Password={Database_Password};";
        //var conString = $"" +
        //    $"Server={Database_Server};" +
        //    $"Database={Database_Database};" +
        //    $"User ID={Database_User};" +
        //    $"Password={Database_Password};";
        return conString; 
    }
}

并按预期工作:

[INFO] 15.12.2020 11:23:13 >> "Using Connection String: Data Source=[redacted];Initial Catalog=[redacted];User Id=[redacted];Password=[redacted];"

但是不知何故,当使用发布的 SqlConnection 初始化时,我得到了错误

The 'Microsoft.ACE.OLEDB.12.0'-Provider ist not registered on the local computer.

现在,有几点需要注意:

有人知道关于这个话题的一些重要信息吗?也许我遗漏了什么,或者遇到了类似的问题?

提前致谢!

编辑:

如评论和一个答案中所述,这是一个访问错误。我的异常不是在初始化 SqlConnection 时抛出的,而是在使用 LinqToExcel 中的一些东西时抛出的。不幸的是我误解了。

关于“Microsoft Access Database Engine 2010 Redistributable”的答案似乎是解决方案。

我遇到了类似的问题,我已经通过在服务器上安装 Microsoft Access Database Engine 2010 Redistributable 解决了这个问题。但是我的应用程序使用 excel 工作簿。

Microsoft Access Database Engine 2010 Redistributable