OSDN Git Service

na-get-lib,チケット #36130 に関連して、更新パッケージから非対応パッケージを除外するようにした
authorttp <ttp@users.sourceforge.jp>
Sun, 13 Mar 2016 11:34:57 +0000 (20:34 +0900)
committerttp <ttp@users.sourceforge.jp>
Sun, 13 Mar 2016 11:34:57 +0000 (20:34 +0900)
na-get-lib/NaGet.Packages.Install/Installation.cs
na-get-lib/NaGet.Packages.Install/UpgradeFinder.cs

index 2809ad0..69a0275 100644 (file)
@@ -23,7 +23,7 @@ namespace NaGet.Packages.Install
                        set {\r
                                installedPackage = value;\r
                                \r
-                               installerIndex = getPreferInstallerIndex(value);\r
+                               installerIndex = GetPreferInstallerIndex(value);\r
                                installerFile = getArchiveFilePath();\r
                        }\r
                }\r
@@ -312,23 +312,21 @@ namespace NaGet.Packages.Install
                        return exitCode;\r
                }\r
                \r
-               #region インストーラーファイル設定時の処理\r
-               \r
                /// <summary>\r
                /// もっともふさわしいインストーラー番号を返す\r
                /// </summary>\r
                /// <returns></returns>\r
-               private static int getPreferInstallerIndex(Package InstalledPackage)\r
+               protected internal static int GetPreferInstallerIndex(Package installedPackage)\r
                {\r
-                       if (InstalledPackage.Type == InstallerType.CANNOT_INSTALL) { // インストール不能パッケージ\r
+                       if (installedPackage.Type == InstallerType.CANNOT_INSTALL) { // インストール不能パッケージ\r
                                return -1;\r
                        }\r
                        \r
                        int best = -1;\r
                        int bestVal = 0;\r
                        \r
-                       for (int i = 0; i < InstalledPackage.Installer.Length; i++) {\r
-                               Platform platform = InstalledPackage.Installer[i].Platform;\r
+                       for (int i = 0; i < installedPackage.Installer.Length; i++) {\r
+                               Platform platform = installedPackage.Installer[i].Platform;\r
                                \r
                                int pts = 0;\r
                                if (platform != null) {\r
@@ -346,6 +344,8 @@ namespace NaGet.Packages.Install
                        return best;\r
                }\r
                \r
+               #region インストーラーファイル設定時の処理\r
+               \r
                /// <summary>\r
                /// インストーラーの保存先パスを生成\r
                /// </summary>\r
@@ -508,7 +508,7 @@ namespace NaGet.Packages.Install
                /// <returns>インストール可能か否か</returns>\r
                public static bool IsInstallablePackage(Package pkg)\r
                {\r
-                       int installerIndex = getPreferInstallerIndex(pkg);\r
+                       int installerIndex = GetPreferInstallerIndex(pkg);\r
                        return installerIndex >= 0;\r
                }\r
                \r
index 10bb800..9dea43a 100644 (file)
@@ -27,6 +27,8 @@ namespace NaGet.Packages.Install
                                        
                                        if (Array.IndexOf(exclude, pkg.Name) >= 0) {
                                                canUpgrade = false;
+                                       } else if (Installation.GetPreferInstallerIndex(pkg) == -1) {
+                                               canUpgrade = false;
                                        }
                                }
                        }