+ void RunUpdateAppliStation()\r
+ {\r
+ System.Threading.Thread.Sleep(5000); /* 5sec待って呼び出しもとの終了を待つ */\r
+ \r
+ string newAppliStationDir = Application.StartupPath;\r
+ string targetDir = Environment.CurrentDirectory;\r
+ foreach (string file in Directory.GetFiles(newAppliStationDir)) {\r
+ string ext = Path.GetExtension(file).ToLower();\r
+ if ((ext == ".exe") || (ext == ".dll") ||\r
+ (ext == ".pdb") || (ext == ".png")) {\r
+ File.Copy(file, Path.Combine(targetDir, Path.GetFileName(file)), true);\r
+ }\r
+ }\r
+MessageBox.Show("Installation is completed.");\r
+ System.Threading.Thread.Sleep(10);\r
+ System.Diagnostics.Process.Start(Path.Combine(targetDir, Path.GetFileName(Application.ExecutablePath)));\r
+ hideSplashScreen();\r
+ //Application.Exit(); // Do nothing = exit\r
+ }\r
+ \r
+ /// <summary>\r
+ /// AppliStationの自己更新を行う。アーカイブインストーラによってあらかじめインストールされたファイルを、\r
+ /// カレントディレクトリにコピーするよう新しいAppliStation.exeを呼ぶ。\r
+ /// コピー元がないまたはそれが新しくないならば何もしない。\r
+ /// </summary>\r
+ /// <returns>更新をしたときtrueをかえす。</returns>\r
+ private bool autoUpdateAppliStation()\r
+ {\r
+ if (string.IsNullOrEmpty(appArgs["cmd"].ToString())) {\r
+ string newAppliStationDir = Path.Combine(NaGet.Env.ArchiveProgramFiles, "AppliStation");\r
+ string thisAppliStation = Application.ExecutablePath;\r
+ \r
+ if (Directory.Exists(newAppliStationDir)) {\r
+ string newAppliStation = Path.Combine(newAppliStationDir, Path.GetFileName(thisAppliStation));\r
+ \r
+MessageBox.Show(string.Format("{0}\r\n{1}", newAppliStation, File.Exists(newAppliStation)));\r
+MessageBox.Show(string.Format("{0}\r\n{1}", File.GetLastWriteTime(thisAppliStation), File.GetLastWriteTime(newAppliStation)));\r
+MessageBox.Show(string.Format("{0}", File.GetLastWriteTime(thisAppliStation) < File.GetLastWriteTime(newAppliStation)));\r
+ \r
+ if ( File.Exists(newAppliStation) &&\r
+ (File.GetLastWriteTime(thisAppliStation) < File.GetLastWriteTime(newAppliStation)) ) {\r
+\r
+ System.Diagnostics.Process.Start(newAppliStation, "--cmd=updateAppliStation");\r
+ return true;\r
+ }\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+ \r