以编程方式安装VFPOLEDB时出现异常

时间:2017-04-05 11:41:00

标签: c# installation oledb visual-foxpro failed-installation

我正在尝试通过控制台应用程序安装VFPOLEDB驱动程序。

我尝试过这样的事情

public void InstallVfpOledb()
{
            Type type = Type.GetTypeFromProgID("WindowsInstaller.Installer");
            try
            {
                Installer installer = (Installer)Activator.CreateInstance(type);
                installer.InstallProduct(@"C:\VFPOLEDBSetup.msi");
            }
            catch (Exception e)
            {
                Console.Write(e.ToString());
            }
}

所以当我运行程序时,我得到以下异常:

  

System.Runtime.InteropServices.COMException(0x80004005):   InstallProduct,PackagePath,PropertyValues at   System.RuntimeType.ForwardCallToInvokeMember(String memberName,   BindingFlags标志,Object target,Int32 [] aWrapperTypes,MessageData&   msgData)在WindowsInstaller.Installer.InstallProduct(String   PackagePath,String PropertyValues)at   installtest.Program.Main(String [] args)第22行

我相信InstallProduct方法将路径和属性值作为参数。

我想我错过了那些价值观。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

这个适用于我:

// using Microsoft.Deployment.WindowsInstaller in 
// Microsoft.Deployment.WindowsInstaller.dll

try
{
    Installer.InstallProduct(@"C:\VFPOLEDBSetup.msi","");
}
catch (Exception e)
{
    Console.Write(e.Message);
}

如果不以管理员身份运行,则会要求许可。