Example #1
0
        public void CopyFiles(InstallDirectoryItem appInstallation, PackageContent appPackage, string appLibPath)
        {
            if (!appInstallation.Directory.Exists)
            {
                appInstallation.Directory.Create();
            }

            var installPath  = appInstallation.Directory.FullName;
            var installFiles = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);

            // Копирование файлов из каталога 'lib'
            foreach (var libFile in appPackage.Lib)
            {
                var destinationPath = Path.Combine(installPath, appLibPath, libFile.InstallPath);
                CopyFileWithOverwrite(libFile.SourcePath, destinationPath, installFiles);
            }

            // Копирование файлов из каталога 'content'
            foreach (var contentFile in appPackage.Content)
            {
                var destinationPath = Path.Combine(installPath, "content", contentFile.InstallPath);
                CopyFileWithOverwrite(contentFile.SourcePath, destinationPath, installFiles);
            }


            // Копирование файлов из каталога 'plugin'
            foreach (var contentFile in appPackage.Plugin)
            {
                var destinationPath = Path.Combine(installPath, "platform", contentFile.InstallPath);
                CopyFileWithOverwrite(contentFile.SourcePath, destinationPath, installFiles);
            }
        }
Example #2
0
        /// <summary>
        /// Возвращает содержимое пакета.
        /// </summary>
        /// <param name="packageIdentity">Идентификатор пакета.</param>
        /// <param name="packageDependencies">Список зависимостей пакета.</param>
        private PackageContent GetPackageContent(PackageIdentity packageIdentity, List <PackageIdentity> packageDependencies)
        {
            var packageContent = new PackageContent(packageIdentity, packageDependencies);

            var targetFramework = GetPackageLowestSupportedFramework(packageIdentity);

            if (packageDependencies != null)
            {
                foreach (var dependency in packageDependencies)
                {
                    FillPackageContent(packageContent, dependency, targetFramework, new DefaultCompatibilityProvider());
                }
            }

            return(packageContent);
        }
Example #3
0
        /// <summary>
        /// Добавляет в содержимое пакета совместимые версии файлов из указанного пакета.
        /// </summary>
        /// <param name="packageContent">Содержимое пакета.</param>
        /// <param name="packageIdentity">Идентификатор пакета.</param>
        /// <param name="targetFramework">Версия совместимого фреймворка.</param>
        /// <param name="compatibilityProvider">Провайдер для проверки совместимости фреймворков.</param>
        private void FillPackageContent(PackageContent packageContent,
                                        PackageIdentity packageIdentity,
                                        NuGetFramework targetFramework,
                                        IFrameworkCompatibilityProvider compatibilityProvider)
        {
            var packagePath = GetPackagePath(packageIdentity);

            using (var reader = new PackageFolderReader(packagePath))
            {
                var libItems = GetCompatibleItems(reader, reader.GetLibItems().ToList(), targetFramework, compatibilityProvider);

                if (libItems?.Items != null)
                {
                    foreach (var item in libItems.Items)
                    {
                        var installItem = GetPackageItem(packagePath, item, PackagingConstants.Folders.Lib, libItems.TargetFramework);
                        packageContent.Lib.Add(installItem);
                    }
                }

                var contentItems = GetCompatibleItems(reader, reader.GetContentItems().ToList(), targetFramework, compatibilityProvider);

                if (contentItems?.Items != null)
                {
                    foreach (var item in contentItems.Items)
                    {
                        var installItem = GetPackageItem(packagePath, item, PackagingConstants.Folders.Content, contentItems.TargetFramework);
                        packageContent.Content.Add(installItem);
                    }
                }

                var pluginItems = GetCompatibleItems(reader, reader.GetPluginItems().ToList(), targetFramework, compatibilityProvider);

                if (pluginItems?.Items != null)
                {
                    foreach (var item in pluginItems.Items)
                    {
                        var installItem = GetPackageItem(packagePath, item, PluginFolderName, pluginItems.TargetFramework);
                        packageContent.Plugin.Add(installItem);
                    }
                }
            }
        }
        /// <summary>
        /// Добавляет в содержимое пакета совместимые версии файлов из указанного пакета.
        /// </summary>
        /// <param name="packageContent">Содержимое пакета.</param>
        /// <param name="packageIdentity">Идентификатор пакета.</param>
        /// <param name="targetFramework">Версия совместимого фреймворка.</param>
        /// <param name="compatibilityProvider">Провайдер для проверки совместимости фреймворков.</param>
        private void FillPackageContent(PackageContent packageContent,
                                        PackageIdentity packageIdentity,
                                        NuGetFramework targetFramework,
                                        IFrameworkCompatibilityProvider compatibilityProvider)
        {
            var packagePath = GetPackagePath(packageIdentity);

            using (var reader = new PackageFolderReader(packagePath))
            {
                var libItems = GetCompatibleItems(reader, reader.GetLibItems().ToList(), targetFramework, compatibilityProvider);

                if (libItems?.Items != null)
                {
                    foreach (var item in libItems.Items)
                    {
                        var installItem = GetPackageItem(packagePath, item, PackagingConstants.Folders.Lib, libItems.TargetFramework);
                        packageContent.Lib.Add(installItem);
                    }
                }

                var contentItems = GetCompatibleItems(reader, reader.GetContentItems().ToList(), targetFramework, compatibilityProvider);

                if (contentItems?.Items != null)
                {
                    foreach (var item in contentItems.Items)
                    {
                        var installItem = GetPackageItem(packagePath, item, PackagingConstants.Folders.Content, contentItems.TargetFramework);
                        packageContent.Content.Add(installItem);
                    }
                }

                var pluginItems = GetCompatibleItems(reader, reader.GetPluginItems().ToList(), targetFramework, compatibilityProvider);

                if (pluginItems?.Items != null)
                {
                    foreach (var item in pluginItems.Items)
                    {
                        var installItem = GetPackageItem(packagePath, item, PluginFolderName, pluginItems.TargetFramework);
                        packageContent.Plugin.Add(installItem);
                    }
                }
            }
        }
        /// <summary>
        /// Возвращает содержимое пакета.
        /// </summary>
        /// <param name="packageIdentity">Идентификатор пакета.</param>
        /// <param name="packageDependencies">Список зависимостей пакета.</param>
        private PackageContent GetPackageContent(PackageIdentity packageIdentity, List<PackageIdentity> packageDependencies)
        {
            var packageContent = new PackageContent(packageIdentity, packageDependencies);

            var targetFramework = GetPackageLowestSupportedFramework(packageIdentity);

            if (packageDependencies != null)
            {
                foreach (var dependency in packageDependencies)
                {
                    FillPackageContent(packageContent, dependency, targetFramework, new DefaultCompatibilityProvider());
                }
            }

            return packageContent;
        }
        public void CopyFiles(InstallDirectoryItem appInstallation, PackageContent appPackage, string appLibPath)
        {
            if (!appInstallation.Directory.Exists)
            {
                appInstallation.Directory.Create();
            }

            var installPath = appInstallation.Directory.FullName;
            var installFiles = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

            // Копирование файлов из каталога 'lib'
            foreach (var libFile in appPackage.Lib)
            {
                var destinationPath = Path.Combine(installPath, appLibPath, libFile.InstallPath);
                CopyFileWithOverwrite(libFile.SourcePath, destinationPath, installFiles);
            }

            // Копирование файлов из каталога 'content'
            foreach (var contentFile in appPackage.Content)
            {
                var destinationPath = Path.Combine(installPath, "content", contentFile.InstallPath);
                CopyFileWithOverwrite(contentFile.SourcePath, destinationPath, installFiles);
            }


            // Копирование файлов из каталога 'plugin'
            foreach (var contentFile in appPackage.Plugin)
            {
                var destinationPath = Path.Combine(installPath, "platform", contentFile.InstallPath);
                CopyFileWithOverwrite(contentFile.SourcePath, destinationPath, installFiles);
            }
        }