プロジェクト

全般

プロフィール

リビジョン 45

山内ほぼ8年前に追加

自動更新VPS対応

差分を表示:

trunk/src/UpDateCopy/UpDateCopy/ClsCommon.cs
28 28
        /// </summary>
29 29
        public const string s_ErrorFileName = @".\log\Error.txt";
30 30

  
31
// ▼自動更新VPS対応▼ 
32
        // FTPユーザ名
33
        public const string s_FTP_USER_NAME = "pmaint";
34
        // FTPパスワード
35
        public const string s_FTP_PASSWORD = "hyou5210";
36
        // FTPつなぎ先パス
37
        public const string s_FTP_SERVER_PATH = "ftp://203.137.92.122:990/HYOU/";
38
        // 本体モジュールフォルダ
39
        public const string s_HONTAI_MODULE = "ProcessManagement";
40
        // UVERSIONキー名
41
        public const string s_UVERSION_KEY = "uversion";
42
        // MVERSIONキー名
43
        public const string s_MVERSION_KEY = "mversion";
44
        // VERSIONセクション名
45
        public const string s_VERSION_SECTION = "genbaKantokuHisyo";
46
        // 起動パラメータ
47
        public const string s_KIDOU_PARAM = "/NOCHECK";
48
// ▲自動更新VPS対応▲
31 49
        #endregion
32 50

  
33 51
        /// <summary>
trunk/src/UpDateCopy/UpDateCopy/FrmCopy.cs
11 11
using System.Text;
12 12
using System.Threading.Tasks;
13 13
using System.Windows.Forms;
14
using System.IO.Compression;
14 15

  
15 16
namespace UpDateCopy
16 17
{
......
49 50
            lblMessage.Text = ClsCommon.s_TargetProcess + "を更新しています。\nそのまましばらくお待ちください。";
50 51
            lblMessage.Refresh();
51 52

  
53
// ▼自動更新VPS対応▼ 
54
            System.Threading.Thread.Sleep(1000);
55

  
56
            string tempPath = Path.GetTempPath();
57
            // サーバ更新モジュールzipファイル(ダウンロード後)
58
            string updateModuleZip = tempPath + ClsCommon.s_HONTAI_MODULE + ".zip";
59

  
60
            // 「現場監督秘書(本体)zipの展開フォルダが存在するかチェック
61
            if (System.IO.Directory.Exists(tempPath + ClsCommon.s_HONTAI_MODULE)) {
62
                // zip削除
63
                System.IO.File.Delete(tempPath + ClsCommon.s_HONTAI_MODULE + ".zip");
64
                // ダウンロードファイル削除
65
                System.IO.Directory.Delete(tempPath + ClsCommon.s_HONTAI_MODULE, true);
66
            }
67
            // 「現場監督秘書(本体)zipダウンロード
68
            download(ClsCommon.s_FTP_SERVER_PATH + ClsCommon.s_HONTAI_MODULE + ".zip", updateModuleZip);
69
            // ダウンロードした「現場監督秘書(本体)zip解凍
70
            ZipFile.ExtractToDirectory(updateModuleZip, tempPath);
71
// ▲自動更新VPS対応▲
72

  
52 73
            // メインプログラムの終了を待つ
53 74
            while (true)
54 75
            {
......
57 78
                Process[] processList = Process.GetProcesses();
58 79
                foreach (Process p in processList)
59 80
                {
81
                    Aliveflg = false;
60 82
                    if (p.ProcessName == ClsCommon.s_TargetProcess)
61 83
                    {
62 84
                        if (p.Responding)
......
65 87
                            Console.WriteLine("OK");
66 88
                            break;
67 89
                        }
68
                        else
69
                        {
70
                            break;
71
                        }
72 90
                    }
73 91
                    Debug.WriteLine(++cnt + ":" + p.ProcessName);
74 92
                }
......
76 94
                System.Threading.Thread.Sleep(1000);
77 95
            }
78 96

  
79
            System.Threading.Thread.Sleep(5000);
97
            System.Threading.Thread.Sleep(1000);
80 98
            
81 99
            // ファイルコピー
82 100
            CopyFileProcess();
......
87 105
            // ターゲットを起動する
88 106
            string ExecProc = System.Environment.CurrentDirectory + "\\" + ClsCommon.s_TargetProcess + ".exe";
89 107
            //logger.ErrorFormat("{0}:起動プログラム:{1}", this.Name, ExecProc);
90
            Process exec = Process.Start(ExecProc);
108
// ▼自動更新VPS対応▼ 
109
            // 起動パラメータつきで起動する
110
            Process exec = Process.Start(ExecProc, ClsCommon.s_KIDOU_PARAM);
111
//            Process exec = Process.Start(ExecProc);
112
// ▲自動更新VPS対応▲
91 113

  
92 114
        }
93 115
    
......
136 158
                // プログレスバー加算
137 159
                progressBar.Value = progressBar.Maximum;
138 160
                progressBar.Refresh();
161
// ▼自動更新VPS対応▼ 
162
                string tempPath = Path.GetTempPath();
163
                // zip削除
164
                System.IO.File.Delete(tempPath + ClsCommon.s_HONTAI_MODULE + ".zip");
165
                // ダウンロードファイル削除
166
                System.IO.Directory.Delete(tempPath + ClsCommon.s_HONTAI_MODULE, true);
167
// ▲自動更新VPS対応▲
168

  
139 169
            }
140 170
            catch (Exception ex)
141 171
            {
......
158 188
                // 自プロセス名を作成する
159 189
                string myProcess = Process.GetCurrentProcess().ProcessName + ".exe";
160 190

  
191
// ▼自動更新VPS対応▼ 
161 192
                // コピー元ファイル名を取得する
162
                string[] files = Directory.GetFiles(@ClsCommon.s_UPDATE_FILE_PATH);
193
//                string[] files = Directory.GetFiles(@ClsCommon.s_UPDATE_FILE_PATH);
194
                string[] files = Directory.GetFiles(Path.GetTempPath() + "\\" + ClsCommon.s_HONTAI_MODULE);
195
// ▲自動更新VPS対応▲
196

  
163 197
                foreach (string sourceFile in files)
164 198
                {
165 199
                    // ファイル名を取得する
......
206 240
            }
207 241
        }
208 242

  
243
// ▼自動更新VPS対応▼ 
244
        // サーバからファイルダウンロード
245
        private static void download(String serverPath, String downloadSakiPath)
246
        {
247
            //WebClientオブジェクトを作成
248
            System.Net.WebClient wc = new System.Net.WebClient();
249
            //ログインユーザー名とパスワードを指定
250
            wc.Credentials =
251
                new System.Net.NetworkCredential(ClsCommon.s_FTP_USER_NAME, ClsCommon.s_FTP_PASSWORD);
252
            //FTPサーバーからダウンロードする
253
            wc.DownloadFile(serverPath, downloadSakiPath);
254
            //解放する
255
            wc.Dispose();
256
        }
257
// ▲自動更新VPS対応t▲
258

  
209 259
    }
210 260
}
trunk/src/UpDateCopy/UpDateCopy/UpDateCopy.csproj
57 57
  <ItemGroup>
58 58
    <Reference Include="System" />
59 59
    <Reference Include="System.Core" />
60
    <Reference Include="System.IO.Compression" />
61
    <Reference Include="System.IO.Compression.FileSystem" />
60 62
    <Reference Include="System.Xml.Linq" />
61 63
    <Reference Include="System.Data.DataSetExtensions" />
62 64
    <Reference Include="Microsoft.CSharp" />
......
74 76
    <Compile Include="FrmCopy.Designer.cs">
75 77
      <DependentUpon>FrmCopy.cs</DependentUpon>
76 78
    </Compile>
79
    <Compile Include="IniFile.cs" />
77 80
    <Compile Include="Program.cs" />
78 81
    <Compile Include="Properties\AssemblyInfo.cs" />
79 82
    <EmbeddedResource Include="FrmCopy.resx">

他の形式にエクスポート: Unified diff