リビジョン 45
自動更新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