Exception WiX 3自定义操作-函数返回,无异常

Exception WiX 3自定义操作-函数返回,无异常,exception,wix,wix3.5,wix3,wix3.6,Exception,Wix,Wix3.5,Wix3,Wix3.6,我已经在WiX 3.7中编写了一个自定义操作,现在当我想连接到某个数据库(Firebird)时,它刚刚从函数中返回,我已经调试了一个多小时,但无法找出问题的确切位置 Database db; try { db = new Database(@"C:\Cedex2\DB\CEDEX.FDB", DatabaseOpenMode.Transact); Debuging.Log("step0"); }

我已经在WiX 3.7中编写了一个自定义操作,现在当我想连接到某个数据库(Firebird)时,它刚刚从函数中返回,我已经调试了一个多小时,但无法找出问题的确切位置

Database db;
        try
        {
            db = new Database(@"C:\Cedex2\DB\CEDEX.FDB", DatabaseOpenMode.Transact);
            Debuging.Log("step0");
        }
        catch (Exception ex)
        {
            Debuging.Log(ex.Message);
        }
        try
        {
            string sqlScript = "";
            Debuging.Log("step1");
            using (StreamReader reader = new StreamReader(@"C:\Cedex2\DB\script1.sql"))
            {
                try
                {
                    sqlScript = reader.ReadToEnd();
                }
                catch (Exception ex)
                {
                    Debuging.Log(ex.Message);
                }
            }
            Debuging.Log(sqlScript);
            db.Execute(sqlScript);
            Debuging.Log("step2");
            db.Close();
            Debuging.Log("closed");
        }
        catch (Exception ex)
        {
            Debuging.Log(ex.Message);
        }
脚本存在,数据库文件也存在。在登录(“step0”)之前必须发生一些事情,因为这不会出现在我的登录文件中。如果在new Database()之前手动抛出异常,它将进入捕获和日志。有什么不对劲吗?如果这是一个编译器错误,为什么它不会出现在我的捕获中


通过自定义操作运行后,数据库文件也没有新的Windows Lastmodified日期“Database”类的完全限定命名空间是什么?您正在尝试使用Microsoft.Deployment.WindowsInstaller.Database打开Firebird数据库吗?如果是,则该类仅打开Windows Installer数据库。(我猜你是。)

看看:


是的,我喜欢。嗯,我没想过这个。这就是我的xml数据库规范不起作用的原因。但是如何在firebird数据库上执行SQL脚本呢?我的意思是,我认为必须有一种方法来实现这一点,否则我会有一个大问题……DTF的滚动仅仅是在Windows Installer上下文中运行托管自定义操作的模型。如何连接到Firebird数据库将是一个与WiX和DTF无关的不同问题。我已经发布了一个链接让你开始。请记住投票并接受这个答案。看起来这正是我需要的。谢谢