I write a program that should run on a lot of machines

I did not installed Access in the machines But I have an access database using on them 

When I write and delete data from this Access databases its size grow up so every few days I have to compacts them and to shrink the size 

This is the code I using 

```
public void Compacting()
{
    try
    {
        Microsoft.Office.Interop.Access.Application application = new Microsoft.Office.Interop.Access.Application();

        string dbName = "";
        try
        {
            dbName = ConfigurationManager.ConnectionStrings["LocalPulserDB"].ConnectionString.Split("Data Source=").Last().Split(";").First();
        }
        catch (Exception ex)
        {
            string localDbError = "DataBase location is incorrect ";
            System.Windows.MessageBox.Show(localDbError);
            Environment.Exit(1);
        }

        CompactAndRepair(dbName, application);
    }
    catch (Exception ex)
    {
        try
        {
            LocalPulserDBManagerInstance.WriteLog(ex.StackTrace, ex.Message);
        }
        catch (Exception)
        {

        }
    }
}

private void CompactAndRepair(string accessFile, Microsoft.Office.Interop.Access.Application app)
{
    string tempFile = Path.Combine(Path.GetDirectoryName(accessFile),
                      Path.GetRandomFileName() + Path.GetExtension(accessFile));

    app.CompactRepair(accessFile, tempFile, true);
    app.Visible = false;

    FileInfo temp = new FileInfo(tempFile);
    temp.CopyTo(accessFile, true);
    temp.Delete();
}

```

But I got the next error :

```
{"Retrieving the COM class factory for component with CLSID {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))."}

```

What can I do?