void HandleMigrateDB(MigrateDBEvent e) { string db4oPath = Path.Combine(App.Current.baseDirectory, "lib", "cli", "Db4objects.Db4o-8.0"); string monoPath = Path.GetFullPath(App.Current.LibsDir) + Path.PathSeparator + Path.GetFullPath(db4oPath); string migrationExe = Path.GetFullPath(Path.Combine(App.Current.LibsDir, "migration", "LongoMatch.exe")); ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.CreateNoWindow = true; startInfo.UseShellExecute = false; startInfo.Arguments = "\"" + migrationExe + "\""; startInfo.WorkingDirectory = Path.GetFullPath(Path.Combine(App.Current.baseDirectory, "bin")); if (System.Environment.OSVersion.Platform == PlatformID.Win32NT) { startInfo.FileName = Path.Combine(App.Current.baseDirectory, "bin", "mono-sgen.exe"); startInfo.EnvironmentVariables ["MONO_CFG_DIR"] = Path.GetFullPath( Path.Combine(App.Current.baseDirectory, "etc")); } else { startInfo.FileName = "mono-sgen"; } if (startInfo.EnvironmentVariables.ContainsKey("MONO_PATH")) { startInfo.EnvironmentVariables ["MONO_PATH"] += Path.PathSeparator + monoPath; } else { startInfo.EnvironmentVariables.Add("MONO_PATH", monoPath); } Log.Information(String.Format("Launching migration tool {0} {1}", startInfo.FileName, startInfo.EnvironmentVariables ["MONO_PATH"])); using (Process exeProcess = Process.Start(startInfo)) { exeProcess.WaitForExit(); App.Current.DatabaseManager.UpdateDatabases(); App.Current.DatabaseManager.SetActiveByName(App.Current.DatabaseManager.ActiveDB.Info.Name); } }
void HandleMigrateDB(MigrateDBEvent e) { string db4oPath = Path.Combine (App.Current.baseDirectory, "lib", "cli", "Db4objects.Db4o-8.0"); string monoPath = Path.GetFullPath (App.Current.LibsDir) + Path.PathSeparator + Path.GetFullPath (db4oPath); string migrationExe = Path.GetFullPath (Path.Combine (App.Current.LibsDir, "migration", "LongoMatch.exe")); ProcessStartInfo startInfo = new ProcessStartInfo (); startInfo.CreateNoWindow = true; startInfo.UseShellExecute = false; startInfo.Arguments = "\"" + migrationExe + "\""; startInfo.WorkingDirectory = Path.GetFullPath (Path.Combine (App.Current.baseDirectory, "bin")); if (System.Environment.OSVersion.Platform == PlatformID.Win32NT) { startInfo.FileName = Path.Combine (App.Current.baseDirectory, "bin", "mono-sgen.exe"); startInfo.EnvironmentVariables ["MONO_CFG_DIR"] = Path.GetFullPath ( Path.Combine (App.Current.baseDirectory, "etc")); } else { startInfo.FileName = "mono-sgen"; } if (startInfo.EnvironmentVariables.ContainsKey ("MONO_PATH")) { startInfo.EnvironmentVariables ["MONO_PATH"] += Path.PathSeparator + monoPath; } else { startInfo.EnvironmentVariables.Add ("MONO_PATH", monoPath); } Log.Information (String.Format ("Launching migration tool {0} {1}", startInfo.FileName, startInfo.EnvironmentVariables ["MONO_PATH"])); using (Process exeProcess = Process.Start (startInfo)) { exeProcess.WaitForExit (); App.Current.DatabaseManager.UpdateDatabases (); App.Current.DatabaseManager.SetActiveByName (App.Current.DatabaseManager.ActiveDB.Info.Name); } }