\r
public const string InstalledPackageFileName = ".applistation.package.xml";\r
\r
- private static void extract(string arcFile, string extractDestDir)\r
- {\r
- StringBuilder output = new StringBuilder(1024);\r
- int res = NaGet.InteropServices.CommonArchiverExtracter.ExtractArchive(arcFile, extractDestDir, output, IntPtr.Zero);\r
- if (res != 0) {\r
- Environment.Exit(res);\r
- }\r
- }\r
- \r
private static void install(string fakeTargetDir, string targetDir)\r
{\r
// ハッシュ比較\r
Console.WriteLine("\t{0} -i archive.zip PackageName\tInstall", executeFileName);\r
Console.WriteLine("\t{0} -x PackageName\t\tUninstall", executeFileName);\r
Console.WriteLine();\r
+ \r
+ Environment.ExitCode = 1;\r
}\r
\r
// インストールおよび展開処理\r
string destFile = Path.Combine(tempExtractDir, Path.GetFileName(arcFile));\r
File.Copy(arcFile, destFile);\r
} else {\r
- extract(arcFile, tempExtractDir);\r
+ NaGet.ArchiveExtractionHelpers.ArchiveExtract.Extract(arcFile, tempExtractDir);\r
}\r
\r
// インストールの元となるフォルダを決定する\r
// STEP5. パッケージ情報をインストール先(targetDir)に置く\r
storePackageXml(package, targetDir);\r
}\r
- } catch (DllNotFoundException) {\r
- Console.Error.WriteLine("E: Does not exist archive dll for {0}", arcFile); // TODO\r
- Environment.Exit(10);\r
+ } catch (NaGet.InteropServices.CommonArchiverDllExtractionException e) {\r
+ Console.Error.WriteLine("E: Error: {0}", e.Message);\r
+ Environment.ExitCode = e.ReturnValue;\r
+ } catch (NaGet.ArchiveExtractionHelpers.SevenZipExtractException e) {\r
+ Console.Error.WriteLine("E: Error: {0}", e.Message);\r
+ Environment.ExitCode = e.ReturnValue;\r
+ } catch (ApplicationException e) {\r
+ Console.Error.WriteLine("E: Error: {0}", e.Message);\r
+ Environment.ExitCode = 1;\r
} catch (IOException e) {\r
Console.Error.WriteLine("E: File I/O Error : {0}", e.Message);\r
- Environment.Exit(1);\r
+ Environment.ExitCode = 1;\r
} finally {\r
Directory.Delete(tempExtractDir, true);\r
}\r