リビジョン 44
自動更新VPS対応(注意:app.configは動作環境に合わせて設定してください)
trunk/src/ProcessManagement/ProcessManagement/Common/CommonDefine.cs | ||
---|---|---|
37 | 37 |
/// <summary> |
38 | 38 |
/// パスを定数で定義する |
39 | 39 |
/// </summary> |
40 |
public const string s_UPDATE_FILE_PATH = @"Z:\52GenbaKantokuHisyo"; |
|
41 |
//public const string s_UPDATE_FILE_PATH = @"Z:\5-2現場監督秘書"; |
|
42 |
//private const string s_UPDATE_FILE_PATH = @"Z:\⑤IT事業部用\Debug"; |
|
43 | 40 |
public const string s_UPDATECOPY_NAME = "UpDateCopy.exe"; |
41 |
// ▼自動更新VPS対応▼ |
|
42 |
// FTPユーザ名 |
|
43 |
public const string s_FTP_USER_NAME = "pmaint"; |
|
44 |
// FTPパスワード |
|
45 |
public const string s_FTP_PASSWORD = "hyou5210"; |
|
46 |
// FTPつなぎ先パス |
|
47 |
public const string s_FTP_SERVER_PATH = "ftp://203.137.92.122:990/HYOU/"; |
|
48 |
// 更新モジュールフォルダ,ファイル名 |
|
49 |
public const string s_UPDATE_MODULE = "UpDateCopy"; |
|
50 |
// UVERSIONキー名 |
|
51 |
public const string s_UVERSION_KEY = "uversion"; |
|
52 |
// MVERSIONキー名 |
|
53 |
public const string s_MVERSION_KEY = "mversion"; |
|
54 |
// VERSIONセクション名 |
|
55 |
public const string s_VERSION_SECTION = "genbaKantokuHisyo"; |
|
56 |
// 起動パラメータ |
|
57 |
public const string s_KIDOU_PARAM = "/NOCHECK"; |
|
58 |
// ▲自動更新VPS対応▲ |
|
44 | 59 |
#endregion |
45 | 60 |
|
46 | 61 |
#region システム定義ファイルパス |
trunk/src/ProcessManagement/ProcessManagement/Common/CommonVersion.cs | ||
---|---|---|
14 | 14 |
/// <summary> |
15 | 15 |
/// 本体バージョン |
16 | 16 |
/// </summary> |
17 |
public static int s_SystemVersion = 1;
|
|
17 |
public static int s_SystemVersion = 2;
|
|
18 | 18 |
|
19 | 19 |
/// <summary> |
20 | 20 |
/// コピー・環境バージョン |
21 | 21 |
/// </summary> |
22 |
public static int s_UpDateCopyVersion = 1;
|
|
22 |
public static int s_UpDateCopyVersion = 2;
|
|
23 | 23 |
} |
24 | 24 |
} |
trunk/src/ProcessManagement/ProcessManagement/Common/Process/ClsUpDate.cs | ||
---|---|---|
6 | 6 |
using System.Security.Cryptography; |
7 | 7 |
using System.Text; |
8 | 8 |
using System.Threading.Tasks; |
9 |
using System.IO.Compression; |
|
9 | 10 |
|
10 | 11 |
namespace ProcessManagement.Common |
11 | 12 |
{ |
... | ... | |
14 | 15 |
/// </summary> |
15 | 16 |
public static class ClsUpDate |
16 | 17 |
{ |
18 |
// ▼自動更新VPS対応▼ |
|
19 |
// サーバからファイルダウンロード |
|
20 |
private static void download(String serverPath, String downloadSakiPath) |
|
21 |
{ |
|
22 |
//WebClientオブジェクトを作成 |
|
23 |
System.Net.WebClient wc = new System.Net.WebClient(); |
|
24 |
//ログインユーザー名とパスワードを指定 |
|
25 |
wc.Credentials = |
|
26 |
new System.Net.NetworkCredential( |
|
27 |
CommonDefine.s_FTP_USER_NAME, CommonDefine.s_FTP_PASSWORD); |
|
28 |
//FTPサーバーからダウンロードする |
|
29 |
wc.DownloadFile(serverPath, downloadSakiPath); |
|
30 |
//解放する |
|
31 |
wc.Dispose(); |
|
32 |
} |
|
33 |
// ▲自動更新VPS対応▲ |
|
17 | 34 |
#region 使用定義 |
18 | 35 |
//log4netログを使用する |
19 | 36 |
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); |
20 | 37 |
#endregion |
21 | 38 |
|
22 |
#region ファイルのハッシュ値と更新日付を確認する
|
|
39 |
#region ファイルをコピーする
|
|
23 | 40 |
/// <summary> |
24 | 41 |
/// ファイルのハッシュ値と更新日付を確認する |
25 | 42 |
/// </summary> |
26 | 43 |
/// <returns></returns> |
27 |
public static bool ProgramTimeStampCheck()
|
|
44 |
public static bool UpdateAndEnvFileCopy()
|
|
28 | 45 |
{ |
29 |
try |
|
30 |
{ |
|
31 |
bool bRet = true; // 戻り値 |
|
32 |
bool bCopyUpdataProc = false; // アップデートPGコピーフラグ |
|
33 |
string srcUpdataProc = string.Empty; // コピー元ファイルパス作成エリア |
|
34 |
string destUpdataProc = string.Empty; // コピー先ファイルパス作成エリア |
|
46 |
bool bRet = true; // 戻り値 |
|
35 | 47 |
|
36 |
// デバック以外は使わない |
|
37 |
//return true; |
|
38 |
// 接続できなければ処理しない |
|
39 |
if (!Directory.Exists(CommonDefine.s_UPDATE_FILE_PATH)) return true; |
|
48 |
// Windows TEMPフォルダパス |
|
49 |
string tempPath = Path.GetTempPath(); |
|
50 |
// アップデートファイルパス |
|
51 |
string updateFilePath = tempPath + CommonDefine.s_UPDATE_MODULE; |
|
52 |
// サーバ更新モジュールzipファイル(ダウンロード後) |
|
53 |
string updateModuleZip = tempPath + CommonDefine.s_UPDATE_MODULE + ".zip"; |
|
40 | 54 |
|
41 |
// コピー元(サーバー)ファイルリストを取得する |
|
42 |
string[] files = Directory.GetFiles(CommonDefine.s_UPDATE_FILE_PATH); |
|
43 |
foreach (string sourceFile in files) |
|
44 |
{ |
|
45 |
// ファイル名を取得する |
|
46 |
int spoint = sourceFile.LastIndexOf("\\") + 1; |
|
47 |
string Procename = sourceFile.Substring(spoint); |
|
48 |
// コピー先(カレント)ファイル名作成 |
|
49 |
string destinationFile = System.Environment.CurrentDirectory + "\\" + Procename; |
|
50 |
// コピー先(カレント)にファイルがない |
|
51 |
if (!File.Exists(@destinationFile)) |
|
52 |
{ |
|
53 |
// コピープロセスが無い場合はここでコピー |
|
54 |
if (CommonDefine.s_UPDATECOPY_NAME == Procename) |
|
55 |
{ |
|
56 |
srcUpdataProc = @sourceFile; |
|
57 |
destUpdataProc = @destinationFile; |
|
58 |
bCopyUpdataProc = true; |
|
59 |
} |
|
60 |
else |
|
61 |
{ |
|
62 |
bRet = false; |
|
63 |
} |
|
64 |
continue; |
|
65 |
} |
|
66 |
|
|
67 |
// ハッシュ値を取得する |
|
68 |
// ----- コピー元ファイル |
|
69 |
string srcHash = CommonMotions.GetFileHashData(@sourceFile); |
|
70 |
// ----- コピー先ファイル |
|
71 |
string destHash = CommonMotions.GetFileHashData(@destinationFile); |
|
72 |
|
|
73 |
// ファイルが違う |
|
74 |
if (srcHash != destHash) |
|
75 |
{ |
|
76 |
// 更新時間を確認する |
|
77 |
// ----- コピー元ファイル |
|
78 |
DateTime srcTimeStamp = CommonMotions.GetFileTimeStamp(@sourceFile, 'U'); |
|
79 |
// ----- コピー先ファイル |
|
80 |
DateTime destTimeStamp = CommonMotions.GetFileTimeStamp(@destinationFile, 'U'); |
|
81 |
// コピー元ファイルが新しくない |
|
82 |
if (srcTimeStamp <= destTimeStamp) continue; |
|
83 |
|
|
84 |
// コピープロセスが新しい場合はここでコピー |
|
85 |
if (CommonDefine.s_UPDATECOPY_NAME == Procename) |
|
86 |
{ |
|
87 |
srcUpdataProc = @sourceFile; |
|
88 |
destUpdataProc = @destinationFile; |
|
89 |
bCopyUpdataProc = true; |
|
90 |
} |
|
91 |
else |
|
92 |
{ |
|
93 |
bRet = false; |
|
94 |
} |
|
95 |
} |
|
96 |
} |
|
97 |
|
|
98 |
// コピープロセスのコピー |
|
99 |
if (bCopyUpdataProc) |
|
100 |
{ |
|
101 |
File.Copy(@srcUpdataProc, @destUpdataProc, true); |
|
102 |
} |
|
103 |
|
|
104 |
return bRet; |
|
105 |
} |
|
106 |
catch (Exception ex) |
|
55 |
// 更新モジュール置き換え |
|
56 |
// 更新モジュールzipあるか存在チェック |
|
57 |
if (System.IO.Directory.Exists(tempPath + CommonDefine.s_UPDATE_MODULE)) |
|
107 | 58 |
{ |
108 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
109 |
return false; |
|
59 |
// zip削除 |
|
60 |
System.IO.File.Delete(updateModuleZip); |
|
61 |
// ダウンロードファイル削除 |
|
62 |
System.IO.Directory.Delete(tempPath + CommonDefine.s_UPDATE_MODULE, true); |
|
110 | 63 |
} |
111 |
} |
|
112 |
#endregion |
|
64 |
// 更新モジュールZipダウンロード |
|
65 |
download( |
|
66 |
CommonDefine.s_FTP_SERVER_PATH + CommonDefine.s_UPDATE_MODULE + ".zip", updateModuleZip); |
|
67 |
// 更新モジュール解凍 |
|
68 |
ZipFile.ExtractToDirectory(updateModuleZip, tempPath); |
|
113 | 69 |
|
114 |
#region ファイルをコピーする |
|
115 |
/// <summary> |
|
116 |
/// ファイルのハッシュ値と更新日付を確認する |
|
117 |
/// </summary> |
|
118 |
/// <returns></returns> |
|
119 |
public static bool UpdateAndEnvFileCopy() |
|
120 |
{ |
|
121 |
try |
|
70 |
// コピー元(サーバー)ファイルリストを取得する |
|
71 |
string[] files = Directory.GetFiles(updateFilePath); |
|
72 |
foreach (string sourceFile in files) |
|
122 | 73 |
{ |
123 |
bool bRet = true; // 戻り値 |
|
124 |
string srcUpdataProc = string.Empty; // コピー元ファイルパス作成エリア |
|
125 |
string destUpdataProc = string.Empty; // コピー先ファイルパス作成エリア |
|
126 |
|
|
127 |
// デバック以外は使わない |
|
128 |
//return true; |
|
129 |
// 接続できなければ処理しない |
|
130 |
if (!Directory.Exists(CommonDefine.s_UPDATE_FILE_PATH)) return true; |
|
131 |
|
|
132 |
// コピー元(サーバー)ファイルリストを取得する |
|
133 |
string[] files = Directory.GetFiles(CommonDefine.s_UPDATE_FILE_PATH); |
|
134 |
foreach (string sourceFile in files) |
|
74 |
// ファイル名を取得する |
|
75 |
int spoint = sourceFile.LastIndexOf("\\") + 1; |
|
76 |
string Procename = sourceFile.Substring(spoint); |
|
77 |
// コピー先(カレント)ファイル名作成 |
|
78 |
string destinationFile = System.Environment.CurrentDirectory + "\\" + Procename; |
|
79 |
// updatecopy.exeだったらコピー |
|
80 |
if (CommonDefine.s_UPDATECOPY_NAME == Procename) |
|
135 | 81 |
{ |
136 |
// ファイル名を取得する |
|
137 |
int spoint = sourceFile.LastIndexOf("\\") + 1; |
|
138 |
string Procename = sourceFile.Substring(spoint); |
|
139 |
// コピー先(カレント)ファイル名作成 |
|
140 |
string destinationFile = System.Environment.CurrentDirectory + "\\" + Procename; |
|
141 |
|
|
142 |
// コピープロセスコピー |
|
143 |
if (!CommonDefine.s_UPDATECOPY_NAME.Equals(Procename)) continue; |
|
144 |
|
|
145 |
srcUpdataProc = @sourceFile; |
|
146 |
destUpdataProc = @destinationFile; |
|
147 |
|
|
148 |
File.Copy(@srcUpdataProc, @destUpdataProc, true); |
|
82 |
// コピー |
|
83 |
File.Copy(@sourceFile, @destinationFile, true); |
|
149 | 84 |
} |
85 |
} |
|
86 |
// zip削除 |
|
87 |
System.IO.File.Delete(tempPath + CommonDefine.s_UPDATE_MODULE + ".zip"); |
|
88 |
// ダウンロードファイル削除 |
|
89 |
System.IO.Directory.Delete(tempPath + CommonDefine.s_UPDATE_MODULE, true); |
|
150 | 90 |
|
151 |
return bRet; |
|
152 |
} |
|
153 |
catch (Exception ex) |
|
154 |
{ |
|
155 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
156 |
return false; |
|
157 |
} |
|
91 |
return bRet; |
|
158 | 92 |
} |
159 | 93 |
#endregion |
160 | 94 |
} |
trunk/src/ProcessManagement/ProcessManagement/Forms/ZMenu/FrmMenu.cs | ||
---|---|---|
594 | 594 |
|
595 | 595 |
#region 変数 |
596 | 596 |
/// <summary> |
597 |
/// 起動チェックパラメータ(true:更新チェックあり、false:更新チェック無し) |
|
598 |
/// </summary> |
|
599 |
private bool m_KidouCheck = true; |
|
600 |
/// <summary> |
|
597 | 601 |
/// ログイン時終了フラグ |
598 | 602 |
/// </summary> |
599 | 603 |
private bool m_LoginEndFlg = false; |
... | ... | |
698 | 702 |
/// <summary> |
699 | 703 |
/// コンストラクタ |
700 | 704 |
/// </summary> |
701 |
public FrmMenu() |
|
705 |
public FrmMenu(string sKidouParam)
|
|
702 | 706 |
{ |
707 |
if (CommonDefine.s_KIDOU_PARAM != sKidouParam) |
|
708 |
{ |
|
709 |
m_KidouCheck = true; |
|
710 |
} |
|
711 |
else |
|
712 |
{ |
|
713 |
m_KidouCheck = false; |
|
714 |
} |
|
703 | 715 |
InitializeComponent(); |
704 | 716 |
logger.Info("Start Process Management System"); |
705 | 717 |
} |
... | ... | |
801 | 813 |
ClsCleanUp.CleanLogFile(); |
802 | 814 |
|
803 | 815 |
// 初期時システム更新確認処理 |
804 |
if (SystemUpdate.ExecNormal != InitUpdateProc())
|
|
816 |
if(m_KidouCheck)
|
|
805 | 817 |
{ |
806 |
m_LoginEndFlg = true; |
|
807 |
this.Close(); |
|
808 |
return; |
|
818 |
if (SystemUpdate.ExecNormal != InitUpdateProc()) |
|
819 |
{ |
|
820 |
m_LoginEndFlg = true; |
|
821 |
this.Close(); |
|
822 |
return; |
|
823 |
} |
|
809 | 824 |
} |
810 | 825 |
|
811 | 826 |
// タブコントロールをオーナードローへ変更 |
trunk/src/ProcessManagement/ProcessManagement/ProcessManagement.csproj | ||
---|---|---|
87 | 87 |
<SpecificVersion>False</SpecificVersion> |
88 | 88 |
<HintPath>lib\log4net.dll</HintPath> |
89 | 89 |
</Reference> |
90 |
<Reference Include="Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"> |
|
91 |
<EmbedInteropTypes>True</EmbedInteropTypes> |
|
92 |
</Reference> |
|
93 |
<Reference Include="Microsoft.Office.Interop.Word, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"> |
|
94 |
<EmbedInteropTypes>True</EmbedInteropTypes> |
|
95 |
</Reference> |
|
90 | 96 |
<Reference Include="Microsoft.VisualBasic" /> |
91 |
<Reference Include="Microsoft.VisualBasic.PowerPacks, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
|
|
97 |
<Reference Include="Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
|
|
92 | 98 |
<Reference Include="Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=MSIL"> |
93 | 99 |
<HintPath>..\packages\Oracle.ManagedDataAccess.12.1.2400\lib\net40\Oracle.ManagedDataAccess.dll</HintPath> |
94 | 100 |
<Private>True</Private> |
95 | 101 |
</Reference> |
96 | 102 |
<Reference Include="System" /> |
97 | 103 |
<Reference Include="System.Core" /> |
104 |
<Reference Include="System.IO.Compression.FileSystem" /> |
|
98 | 105 |
<Reference Include="System.Windows.Forms.DataVisualization" /> |
99 | 106 |
<Reference Include="System.Xml.Linq" /> |
100 | 107 |
<Reference Include="System.Data" /> |
... | ... | |
969 | 976 |
<Compile Include="Forms\ZMenu\FrmMenuAuxiliary.cs"> |
970 | 977 |
<SubType>Form</SubType> |
971 | 978 |
</Compile> |
979 |
<Compile Include="IniFile.cs" /> |
|
972 | 980 |
<Compile Include="Program.cs" /> |
973 | 981 |
<Compile Include="Properties\AssemblyInfo.cs" /> |
974 | 982 |
<EmbeddedResource Include="Forms\CustomControls\DataGridViewEX.resx"> |
... | ... | |
1298 | 1306 |
<Content Include="Resources\kanriIcon.ico" /> |
1299 | 1307 |
<Content Include="rinen.jpg" /> |
1300 | 1308 |
</ItemGroup> |
1301 |
<ItemGroup> |
|
1302 |
<COMReference Include="Microsoft.Office.Core"> |
|
1303 |
<Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid> |
|
1304 |
<VersionMajor>2</VersionMajor> |
|
1305 |
<VersionMinor>7</VersionMinor> |
|
1306 |
<Lcid>0</Lcid> |
|
1307 |
<WrapperTool>primary</WrapperTool> |
|
1308 |
<Isolated>False</Isolated> |
|
1309 |
<EmbedInteropTypes>True</EmbedInteropTypes> |
|
1310 |
</COMReference> |
|
1311 |
<COMReference Include="Microsoft.Office.Interop.Excel"> |
|
1312 |
<Guid>{00020813-0000-0000-C000-000000000046}</Guid> |
|
1313 |
<VersionMajor>1</VersionMajor> |
|
1314 |
<VersionMinor>8</VersionMinor> |
|
1315 |
<Lcid>0</Lcid> |
|
1316 |
<WrapperTool>primary</WrapperTool> |
|
1317 |
<Isolated>False</Isolated> |
|
1318 |
<EmbedInteropTypes>True</EmbedInteropTypes> |
|
1319 |
</COMReference> |
|
1320 |
<COMReference Include="Microsoft.Office.Interop.Word"> |
|
1321 |
<Guid>{00020905-0000-0000-C000-000000000046}</Guid> |
|
1322 |
<VersionMajor>8</VersionMajor> |
|
1323 |
<VersionMinor>6</VersionMinor> |
|
1324 |
<Lcid>0</Lcid> |
|
1325 |
<WrapperTool>primary</WrapperTool> |
|
1326 |
<Isolated>False</Isolated> |
|
1327 |
<EmbedInteropTypes>True</EmbedInteropTypes> |
|
1328 |
</COMReference> |
|
1329 |
<COMReference Include="VBIDE"> |
|
1330 |
<Guid>{0002E157-0000-0000-C000-000000000046}</Guid> |
|
1331 |
<VersionMajor>5</VersionMajor> |
|
1332 |
<VersionMinor>3</VersionMinor> |
|
1333 |
<Lcid>0</Lcid> |
|
1334 |
<WrapperTool>primary</WrapperTool> |
|
1335 |
<Isolated>False</Isolated> |
|
1336 |
<EmbedInteropTypes>True</EmbedInteropTypes> |
|
1337 |
</COMReference> |
|
1338 |
</ItemGroup> |
|
1339 | 1309 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
1340 | 1310 |
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. |
1341 | 1311 |
Other similar extension points exist, see Microsoft.Common.targets. |
trunk/src/ProcessManagement/ProcessManagement/Program.cs | ||
---|---|---|
29 | 29 |
/// アプリケーションのメイン エントリ ポイントです。 |
30 | 30 |
/// </summary> |
31 | 31 |
[STAThread] |
32 |
static void Main() |
|
32 |
// ▼自動更新VPS対応▼ |
|
33 |
static void Main(string[] args) |
|
34 |
// ▲自動更新VPS対応▲ |
|
33 | 35 |
{ |
34 | 36 |
try |
35 | 37 |
{ |
... | ... | |
59 | 61 |
// } |
60 | 62 |
//} |
61 | 63 |
|
62 |
Application.Run(new FrmMenu()); |
|
64 |
// 起動パラメータ引渡 |
|
65 |
if (args.Length == 0 || |
|
66 |
CommonDefine.s_KIDOU_PARAM != args[0]) |
|
67 |
{ |
|
68 |
Application.Run(new FrmMenu(null)); |
|
69 |
} |
|
70 |
else |
|
71 |
{ |
|
72 |
Application.Run(new FrmMenu(args[0])); |
|
73 |
} |
|
63 | 74 |
} |
64 | 75 |
catch (Exception ex) |
65 | 76 |
{ |
他の形式にエクスポート: Unified diff