OSDN Git Service

AppliStation-all,単体の実行ファイルのインストール対応
[applistation/AppliStation.git] / na-get-lib / NaGet.Packages.Install / Installation.cs
index f4fb5aa..de5d2a1 100644 (file)
@@ -114,7 +114,10 @@ namespace NaGet.Packages.Install
                public bool InstallSuccessed {\r
                        get {\r
                                switch (InstalledPackage.Type) {\r
-                                       case InstallerType.ARCHIVE: // アーカイブインストーラはフォルダの確認\r
+                                       case InstallerType.ARCHIVE:\r
+                                       case InstallerType.ITSELF:\r
+                                               // アーカイブインストーラおよび配布exeそれ自身が実行ファイルのとき、\r
+                                               // (AppliStationの作る)プログラムフォルダの存在のみで確認を行う。\r
                                                return Directory.Exists(Path.Combine(NaGet.Env.ArchiveProgramFiles, InstalledPackage.Name));\r
                                        case InstallerType.EXEC_INSTALLER:\r
                                        case InstallerType.MSI_PACKAGE:\r
@@ -144,6 +147,7 @@ namespace NaGet.Packages.Install
                        get {\r
                                switch (InstalledPackage.Type) {\r
                                        case InstallerType.ARCHIVE:\r
+                                       case InstallerType.ITSELF:\r
                                        case InstallerType.MSI_PACKAGE:\r
                                                return true;\r
                                        case InstallerType.EXEC_INSTALLER:\r
@@ -158,7 +162,10 @@ namespace NaGet.Packages.Install
                /// サイレントインストールだけをサポートしているか否か\r
                /// </summary>\r
                public bool SupportsSilentOnly {\r
-                       get { return InstalledPackage.Type == InstallerType.ARCHIVE; }\r
+                       get {\r
+                               return (InstalledPackage.Type == InstallerType.ARCHIVE)\r
+                                       || (InstalledPackage.Type == InstallerType.ITSELF);\r
+                       }\r
                }\r
                \r
                /// <summary>\r
@@ -166,7 +173,10 @@ namespace NaGet.Packages.Install
                /// </summary>\r
                /// <remark>RunAsが必要か否かの判断にしようされる</remark>\r
                public bool TargetPC {\r
-                       get { return InstalledPackage.Type != InstallerType.ARCHIVE; }\r
+                       get {\r
+                               return (InstalledPackage.Type != InstallerType.ARCHIVE)\r
+                                       && (InstalledPackage.Type != InstallerType.ITSELF);\r
+                       }\r
                }\r
                \r
                #endregion\r
@@ -274,10 +284,12 @@ namespace NaGet.Packages.Install
                                        hProcess = Process.Start("msiexec", msiexecArgs);\r
                                        break;\r
                                case InstallerType.ARCHIVE:\r
+                               case InstallerType.ITSELF:\r
                                        string argument = string.Format("-i \"{0}\" \"{1}\"", installerfile, this.InstalledPackage.Name);\r
                                        hProcess = createExtractArchiveProcess(argument,\r
                                                                               this.OutputDataReceived,\r
                                                                               this.ErrorDataReceived);\r
+                                       // Note: ARCHIVEかITSELFの判断はarchive-instが行う\r
                                        break;\r
                                default:\r
                                        throw new NotImplementedException("Not implemented archive installation yet");\r
@@ -445,6 +457,9 @@ namespace NaGet.Packages.Install
                                        list.AddRange(Directory.GetFiles(basedir, "*.7z"));\r
                                        list.AddRange(Directory.GetFiles(basedir, "*.tar*"));\r
                                        break;\r
+                               case InstallerType.ITSELF:\r
+                                       list.AddRange(Directory.GetFiles(basedir, "*.exe"));\r
+                                       break;\r
                                default:\r
                                        return null;\r
                        }\r