0

WiX 3.7 でカスタム アクションを作成しましたが、データベース (Firebird) に接続したいときに、関数から返されるだけで、1 時間以上デバッグしましたが、どこにあるのかわかりませんでした。まさに問題は

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);
        }

スクリプトが存在し、DB ファイルも存在します。これはログファイルに記録されないため、logging("step0") の前に何かを行う必要があります。new Database() の前に手動で例外をスローすると、キャッチしてログに記録されます。何が間違っている可能性がありますか?それがコンパイラエラーである場合、なぜそれが私のキャッチにならないのですか?

カスタム アクションを実行した後、Database-File には新しい Windows-Lastmodified 日付もありません

4

1 に答える 1

0

「データベース」クラスの完全修飾名前空間は何ですか? Microsoft.Deployment.WindowsInstaller.Database を使用して Firebird データベースを開こうとしていますか? その場合、そのクラスは Windows インストーラー データベースのみを開きます。(私はあなたがそうだと思います。)

を見てみましょう:

Firebird: .NET — 使用例

于 2013-03-04T13:32:08.363 に答える