- } else { // インストールが完了せずに終わった=失敗=エラー\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, string.Format("{0}のインストーラを正常にダウンロードできませんでした", inst.ToString()));\r
- done = true;\r
- return;\r
- }\r
- \r
- RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
- if (scanner.HasScanner) {\r
- try {\r
- inst.ScanInstallerFile(scanner);\r
- } catch (System.Runtime.InteropServices.COMException ex) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING,\r
- string.Format("{0} (E{1})", ex.Message, ex.ErrorCode));\r
- } catch (System.IO.FileNotFoundException ex) {\r
- if (ex.InnerException is System.Runtime.InteropServices.COMException) {\r
+ currentTaskSetIndex ++;\r
+ \r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+ if (! NaGet.Env.EnableScanInstallerFile) {\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "ウイルススキャンを行わない設定のため、ダウンロードしたファイルはウイルススキャンされませんでした");\r
+ } else if (!scanner.HasScanner) {\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "ダウンロードしたファイルはウイルススキャンされませんでした(ウイルススキャンソフトが検出できませんでした)");\r
+ } else {\r
+ try {\r
+ DownloadScannerResult result = inst.ScanInstallerFile(scanner);\r
+ \r
+ switch (result) {\r
+ case DownloadScannerResult.ScannerNotFound:\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "ダウンロードしたファイルはウイルススキャンされませんでした(ウイルススキャンソフトが検出できませんでした)");\r
+ break;\r
+ case DownloadScannerResult.InfectedAndCleaned:\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR,\r
+ "インストーラーファイルからウイルス感染が検出されたため、削除されました。");\r
+ done = true;\r
+ return;\r
+ case DownloadScannerResult.InfectedButNotCleaned:\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR,\r
+ "インストーラーファイルからウイルス感染が検出されました。");\r
+ done = true;\r
+ break;\r
+ case DownloadScannerResult.ErrorNotFound:\r
+ throw new System.IO.FileNotFoundException(string.Empty);\r
+ //break;\r
+ }\r
+ \r
+ } catch (System.Runtime.InteropServices.COMException ex) {\r