Пример #1
0
        static int Main(string[] rgArgs)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            for (int i = 0; i < rgArgs.Length; ++i)
            {
                if (rgArgs[i] == "-debug")
                {
                    s_fDebug = true;
                }
                else if (rgArgs[i] == "-autoclose")
                {
                    s_fAutoClose = true;
                }
                else if (rgArgs[i] == "-chars")
                {
                    s_fMigrateChars = true;
                }
            }
            FwRegistryHelper.Initialize();             // needed to access proper registry values

            if (s_fMigrateChars && s_fDebug)
            {
                MessageBox.Show("Warning: MigrateSqlDbs called with no-longer valid argument, '-chars'. Run 'UnicodeCharEditor -i' instead.");
            }

            // TE-9422. If we had an older version of FW7 installed, ldml files are < verion 2, so will cause
            // a crash if we don't migrate the files to version 2 before opening a project with the current version.
            // TODO (WS_FIX): should we migrate all the way to version 3?
            string globalWsFolder = LcmFileHelper.OldGlobalWritingSystemStoreDirectory;
            var    globalMigrator = new LdmlInFolderWritingSystemRepositoryMigrator(globalWsFolder, NoteMigration, 2);

            globalMigrator.Migrate();

            using (var threadHelper = new ThreadHelper())
                using (var progressDlg = new ProgressDialogWithTask(threadHelper))
                {
                    ImportFrom6_0 importer = new ImportFrom6_0(progressDlg, FwDirectoryFinder.ConverterConsoleExe, FwDirectoryFinder.DbExe, s_fDebug);
                    if (!importer.IsFwSqlServerInstalled())
                    {
                        return(-1);
                    }
                    string version;
                    if (!importer.IsValidOldFwInstalled(out version))
                    {
                        if (!String.IsNullOrEmpty(version) && version.CompareTo("5.4") < 0)
                        {
                            string launchesFlex = "0";
                            if (RegistryHelper.KeyExists(FwRegistryHelper.FieldWorksRegistryKey, "Language Explorer"))
                            {
                                using (RegistryKey keyFlex = FwRegistryHelper.FieldWorksRegistryKey.CreateSubKey("Language Explorer"))
                                    launchesFlex = keyFlex.GetValue("launches", "0") as string;
                            }
                            if (launchesFlex == "0")
                            {
                                FwRegistryHelper.FieldWorksRegistryKey.SetValue("MigrationTo7Needed", "true");
                            }
                            using (var dlg = new FWVersionTooOld(version))
                            {
                                dlg.ShowDialog();
                            }
                        }
                        return(-1);
                    }
                    List <string> projects = GetProjectList();
                    if (projects.Count > 0)
                    {
                        using (var migrateProjects = new MigrateProjects(importer, version, projects, s_fAutoClose))
                        {
                            Application.Run(migrateProjects);
                        }
                    }
                    else if (s_fDebug)
                    {
                        MessageBox.Show("No FieldWorks (SQL) projects were detected.", "DEBUG!");
                    }
                }
            return(s_ReturnValue);
        }
Пример #2
0
		static int Main(string[] rgArgs)
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			for (int i = 0; i < rgArgs.Length; ++i)
			{
				if (rgArgs[i] == "-debug")
					s_fDebug = true;
				else if (rgArgs[i] == "-autoclose")
					s_fAutoClose = true;
				else if (rgArgs[i] == "-chars")
					s_fMigrateChars = true;
			}
			RegistryHelper.ProductName = "FieldWorks";	// needed to access proper registry values

			if (s_fMigrateChars && s_fDebug)
				MessageBox.Show("Warning: MigrateSqlDbs called with no-longer valid argument, '-chars'. Run 'UnicodeCharEditor -i' instead.");

			// TE-9422. If we had an older version of FW7 installed, ldml files are < verion 2, so will cause
			// a crash if we don't migrate the files to version 2 before opening a project with the current version.
			string globalWsFolder = DirectoryFinder.GlobalWritingSystemStoreDirectory;
			var globalMigrator = new LdmlInFolderWritingSystemRepositoryMigrator(globalWsFolder, NoteMigration);
			globalMigrator.Migrate();

			using (var threadHelper = new ThreadHelper())
			using (var progressDlg = new ProgressDialogWithTask(threadHelper))
			{
				ImportFrom6_0 importer = new ImportFrom6_0(progressDlg, FwDirectoryFinder.ConverterConsoleExe, FwDirectoryFinder.DbExe, s_fDebug);
				if (!importer.IsFwSqlServerInstalled())
					return -1;
				string version;
				if (!importer.IsValidOldFwInstalled(out version))
				{
					if (!String.IsNullOrEmpty(version) && version.CompareTo("5.4") < 0)
					{
						string launchesFlex = "0";
						string launchesTE = "0";
						if (RegistryHelper.KeyExists(FwRegistryHelper.FieldWorksRegistryKey, "Language Explorer"))
						{
							using (RegistryKey keyFlex = FwRegistryHelper.FieldWorksRegistryKey.CreateSubKey("Language Explorer"))
								launchesFlex = keyFlex.GetValue("launches", "0") as string;
						}
						if (RegistryHelper.KeyExists(FwRegistryHelper.FieldWorksRegistryKey, FwSubKey.TE))
						{
							using (RegistryKey keyTE = FwRegistryHelper.FieldWorksRegistryKey.CreateSubKey(FwSubKey.TE))
								launchesTE = keyTE.GetValue("launches", "0") as string;
						}
						if (launchesFlex == "0" && launchesTE == "0")
						{
							FwRegistryHelper.FieldWorksRegistryKey.SetValue("MigrationTo7Needed", "true");
						}
						using (var dlg = new FWVersionTooOld(version))
						{
							dlg.ShowDialog();
						}
					}
					return -1;
				}
				List<string> projects = GetProjectList();
				if (projects.Count > 0)
				{
					using (var migrateProjects = new MigrateProjects(importer, version, projects, s_fAutoClose))
					{
						Application.Run(migrateProjects);
					}
				}
				else if (s_fDebug)
				{
					MessageBox.Show("No FieldWorks (SQL) projects were detected.", "DEBUG!");
				}
			}
			return s_ReturnValue;
		}