プロジェクト

全般

プロフィール

リビジョン 44

山内ほぼ8年前に追加

自動更新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