\r
// 変更済みファイルをinstallSrcの方に反映させる\r
if (! Directory.Exists(Path.GetDirectoryName(toBeChangedFilePath))) {\r
- // フォルダがない場合は作る\r
+ // ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81\8cã\81ªã\81\84å ´å\90\88ã\81¯ä½\9cã\82\8b\r
Directory.CreateDirectory(Path.GetDirectoryName(toBeChangedFilePath));\r
}\r
File.Copy(changedFilePath, toBeChangedFilePath);\r
Directory.CreateDirectory(targetDir);\r
}\r
\r
- // まずはフォルダツリーを作成\r
+ // ã\81¾ã\81\9aã\81¯ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\83\84ã\83ªã\83¼ã\82\92ä½\9cæ\88\90\r
foreach (string dir in Directory.GetDirectories(installSrc, "*", SearchOption.AllDirectories)) {\r
string dirPath = NaGet.Utils.GetRelativePath(installSrc, dir);\r
string targetDirPath = Path.Combine(targetDir, dirPath);\r
engine.BuildProject(proj, "Install");\r
}\r
\r
- // 直下のファイルで*.exeがGUIプログラムならプログラムフォルダに登録\r
+ // ç\9b´ä¸\8bã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81§*.exeã\81\8cGUIã\83\97ã\83ã\82°ã\83©ã\83 ã\81ªã\82\89ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81«ç\99»é\8c²\r
foreach (string exeFile in Directory.GetFiles(targetDir, "*.exe")) {\r
- if (NaGet.InteropServices.PEFileInfoUtils.GetPEFileType(exeFile) == NaGet.InteropServices.PEFileInfoUtils.PEFileType.WinGUI) {\r
+ if (NaGet.InteropServices.PEFileInfoUtils.GetPEFileType(exeFile) == NaGet.InteropServices.PEFileType.WinGUI) {\r
string progGrpPath = Path.Combine(NaGet.Env.ArchiveProgramGroup, package.Name);\r
if (! Directory.Exists(progGrpPath)) Directory.CreateDirectory(progGrpPath);\r
\r
engine.BuildProject(proj, "Uninstall");\r
}\r
\r
- // GUIプログラムでプログラムフォルダに登録しているのを解除\r
+ // GUIã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81«ç\99»é\8c²ã\81\97ã\81¦ã\81\84ã\82\8bã\81®ã\82\92解é\99¤\r
string progGrpPath = Path.Combine(NaGet.Env.ArchiveProgramGroup, package.Name);\r
if (Directory.Exists(progGrpPath)) {\r
NaGet.Utils.SetAttributeRecursive(progGrpPath, FileAttributes.Normal);\r
string targetDir = null;\r
Package package = null;\r
\r
+ // 引数パースおよびヘルプ表示\r
try {\r
parseMainArguments(args, out arcFile, out targetDir, out package);\r
} catch (ArgumentException) {\r
Console.WriteLine("\t{0} -x PackageName\t\tUninstall", executeFileName);\r
Console.WriteLine();\r
}\r
- \r
- if (arcFile != null) { // install or extract \r
- string tempExtractDir = targetDir + "___temp___"; // HACK \r
+\r
+ // インストールおよび展開処理\r
+ if (arcFile != null) {\r
+ string tempExtractDir = targetDir + "___temp___"; // HACK\r
Directory.CreateDirectory(tempExtractDir);\r
\r
try {\r
- extract(arcFile, tempExtractDir);\r
+ // STEP1. 書庫の展開\r
+ if (package != null && package.Type == InstallerType.ITSELF) {\r
+ // 書庫でない場合展開せずにそのままコピーする\r
+ string destFile = Path.Combine(tempExtractDir, Path.GetFileName(arcFile));\r
+ File.Copy(arcFile, destFile);\r
+ } else {\r
+ extract(arcFile, tempExtractDir);\r
+ }\r
\r
+ // STEP2. インストール\r
install(tempExtractDir, targetDir);\r
\r
if (package != null) {\r
+ // STEP3. カスタマイズ可能な後処理\r
postInstall(targetDir, package);\r
\r
+ // STEP4. パッケージ情報をインストール先(targetDir)に置く\r
storeInstalledFileList(targetDir);\r
storePackageXml(package, targetDir);\r
}\r