private static string GetAppDependencyPackageFileName(
            string packageFileName, 
            AppDependency depend, 
            IAppManifestInfo info)
        {
            var path1 = Path.Combine(Path.GetDirectoryName(packageFileName), "Dependencies");
            var str = Path.Combine(path1, info.ProcessorArchitecture);
            var strArray = new[]
                               {
                                   Path.GetDirectoryName(packageFileName), str, path1, Constants.WindowsPhoneApp81SDKRoot
                               };
            foreach (var directory in strArray)
            {
                var requirementInDirectory = FindMatchinDependencyRequirementInDirectory(
                    packageFileName, 
                    directory, 
                    depend);
                if (!string.IsNullOrEmpty(requirementInDirectory))
                {
                    return requirementInDirectory;
                }
            }

            return null;
        }
예제 #2
0
        private static string GetAppDependencyPackageFileName(
            string packageFileName,
            AppDependency depend,
            IAppManifestInfo info)
        {
            var path1    = Path.Combine(Path.GetDirectoryName(packageFileName), "Dependencies");
            var str      = Path.Combine(path1, info.ProcessorArchitecture);
            var strArray = new[]
            {
                Path.GetDirectoryName(packageFileName), str, path1, Constants.WindowsPhoneApp81SDKRoot
            };

            foreach (var directory in strArray)
            {
                var requirementInDirectory = FindMatchinDependencyRequirementInDirectory(
                    packageFileName,
                    directory,
                    depend);
                if (!string.IsNullOrEmpty(requirementInDirectory))
                {
                    return(requirementInDirectory);
                }
            }

            return(null);
        }
        private static bool DoesPackageFileMatchDependencyRequirement(string fileNameToCheck, AppDependency depend)
        {
            // NOTE: Uses patched Utils
            var appManifestInfo = Utils.ReadAppManifestInfoFromPackage(fileNameToCheck);
            if (StringComparer.InvariantCultureIgnoreCase.Equals(appManifestInfo.Name, depend.Name))
            {
                return appManifestInfo.AppVersion >= depend.MinVersion;
            }

            return false;
        }
        private static string FindMatchinDependencyRequirementInDirectory(
            string packageFileName, 
            string directory, 
            AppDependency depend)
        {
            if (!Directory.Exists(directory))
            {
                return null;
            }

            foreach (var str in Directory.GetFiles(directory, "*.appx", SearchOption.AllDirectories))
            {
                if (!StringComparer.InvariantCultureIgnoreCase.Equals(packageFileName, str)
                    && DoesPackageFileMatchDependencyRequirement(str, depend))
                {
                    return str;
                }
            }

            return null;
        }
예제 #5
0
        private static string FindMatchinDependencyRequirementInDirectory(
            string packageFileName,
            string directory,
            AppDependency depend)
        {
            if (!Directory.Exists(directory))
            {
                return(null);
            }

            foreach (var str in Directory.GetFiles(directory, "*.appx", SearchOption.AllDirectories))
            {
                if (!StringComparer.InvariantCultureIgnoreCase.Equals(packageFileName, str) &&
                    DoesPackageFileMatchDependencyRequirement(str, depend))
                {
                    return(str);
                }
            }

            return(null);
        }
예제 #6
0
        private static bool DoesPackageFileMatchDependencyRequirement(string fileNameToCheck, AppDependency depend)
        {
            // NOTE: Uses patched Utils
            var appManifestInfo = Utils.ReadAppManifestInfoFromPackage(fileNameToCheck);

            if (StringComparer.InvariantCultureIgnoreCase.Equals(appManifestInfo.Name, depend.Name))
            {
                return(appManifestInfo.AppVersion >= depend.MinVersion);
            }

            return(false);
        }