Ejemplo n.º 1
0
            public NuGetProject(List <string> packagesList, string packagesPath, ProjectFile projectFile, ILog log)
            {
                this.log          = log;
                this.packagesList = packagesList;
                this.projectFile  = projectFile;
                installedPackages = new HashSet <PackageIdentity>();
                var sourceProvider           = new PackageSourceProvider(Settings.LoadDefaultSettings(null));
                var sourceRepositoryProvider = new CommandLineSourceRepositoryProvider(sourceProvider);

                repositories = sourceProvider.LoadPackageSources().Select(sourceRepositoryProvider.CreateRepository)
                               .ToList();
                logger = new Console();

                var projectFilePath = projectFile.FilePath;

                var msbuildDirectory =
                    Path.GetDirectoryName(ModuleBuilderHelper.FindMsBuild(null, "Cement NuGet Package Installer"));

                projectContext = new ConsoleProjectContext(logger);
                projectSystem  = new MSBuildProjectSystem(
                    msbuildDirectory,
                    projectFilePath,
                    projectContext);
                var projectFolder = Path.GetDirectoryName(projectFilePath);

                project = new MSBuildNuGetProject(projectSystem, packagesPath, projectFolder);
            }
        public void TestSourceRepoPackageSourcesChanged2()
        {
            // Arrange
            var settingsPath = TestPackageSourceSettings.CreateAndGetSettingFilePath();
            var settings = new Settings(settingsPath);
            var packageSourceProvider = new PackageSourceProvider(settings);
            var sourceRepositoryProvider = TestSourceRepositoryUtility.CreateSourceRepositoryProvider(packageSourceProvider);

            // Act
            var oldEffectivePackageSources = sourceRepositoryProvider.GetRepositories().ToList();

            // Assert
            Assert.Equal(1, oldEffectivePackageSources.Count);
            Assert.Equal(TestSourceRepositoryUtility.V2PackageSource.Source, oldEffectivePackageSources[0].PackageSource.Source);

            // Main Act
            var newPackageSources = new List<PackageSource>() { TestSourceRepositoryUtility.V3PackageSource,
                TestSourceRepositoryUtility.V2PackageSource };
            packageSourceProvider.SavePackageSources(newPackageSources);

            var newEffectivePackageSources = sourceRepositoryProvider.GetRepositories().ToList();

            // Main Assert
            Assert.Equal(2, newEffectivePackageSources.Count);
            Assert.Equal(TestSourceRepositoryUtility.V3PackageSource.Source, newEffectivePackageSources[0].PackageSource.Source);
            Assert.Equal(TestSourceRepositoryUtility.V2PackageSource.Source, newEffectivePackageSources[1].PackageSource.Source);

            // Clean-up
            TestFilesystemUtility.DeleteRandomTestFolders(settingsPath);
        }
Ejemplo n.º 3
0
        public MachineWideSettings()
        {
            var baseDirectory = NuGetEnvironment.GetFolderPath(NuGetFolderPath.MachineWideConfigDirectory);

            _settings = new Lazy <ISettings>(
                () => SettingsCLass.LoadMachineWideSettings(baseDirectory));
        }
Ejemplo n.º 4
0
        private IEnumerable <SourceRepository> GetInternalRepository(string pathToSolution)
        {
            var setting = Settings.LoadDefaultSettings(pathToSolution);
            var sourceRepositoryProvider = new SourceRepositoryProvider(
                new PackageSourceProvider(setting),
                Repository.Provider.GetCoreV3());

            var repositories = sourceRepositoryProvider
                               .GetRepositories()
                               .Where(r => r.PackageSource.Name.ToLower() != "nuget.org");

            return(repositories);
        }
Ejemplo n.º 5
0
        private IEnumerable <SourceRepository> GetInternalRepository(string pathToSolution)
        {
            var setting = Settings.LoadDefaultSettings(pathToSolution);
            var sourceRepositoryProvider = new SourceRepositoryProvider(
                new PackageSourceProvider(setting),
                Repository.Provider.GetCoreV3());

            var repositories = sourceRepositoryProvider
                               .GetRepositories()
                               .Where(r => !string.Equals(r.PackageSource.Name, "nuget.org", StringComparison.OrdinalIgnoreCase));

            return(repositories);
        }
Ejemplo n.º 6
0
            private DownloadResourceResult LoadPackage(PackageIdentity package,
                                                       PackageDownloadContext packageDownloadContext)
            {
                var downloadResourceResult = PackageDownloader.GetDownloadResourceResultAsync(
                    repositories,
                    package,
                    packageDownloadContext,
                    SettingsUtility.GetGlobalPackagesFolder(Settings.LoadDefaultSettings(null)),
                    logger,
                    CancellationToken.None
                    ).Result;

                return(downloadResourceResult);
            }
Ejemplo n.º 7
0
        public NuGetViewModel([Import(AllowDefault = true)] IExceptionManager?exceptionManager, IApplicationSettings appSettings)
        {
            try
            {
                var settings = LoadSettings();
                ConfigPath          = settings.GetConfigFilePaths().First();
                GlobalPackageFolder = SettingsUtility.GetGlobalPackagesFolder(settings);

                DefaultCredentialServiceUtility.SetupDefaultCredentialService(NullLogger.Instance, nonInteractive: false);

                var sourceProvider = new PackageSourceProvider(settings);
                _sourceRepositoryProvider = new CommandLineSourceRepositoryProvider(sourceProvider);
            }
            catch (Exception e)
            {
                _initializationException = ExceptionDispatchInfo.Capture(e);

                ConfigPath          = string.Empty;
                GlobalPackageFolder = string.Empty;
            }

            Settings LoadSettings()
            {
                Settings?settings = null;

                const int retries = 3;

                for (var i = 1; i <= retries; i++)
                {
                    try
                    {
                        settings = new Settings(appSettings.GetDefaultDocumentPath(), "RoslynPad.nuget.config");
                    }
                    catch (NuGetConfigurationException ex)
                    {
                        if (i == retries)
                        {
                            exceptionManager?.ReportError(ex);
                            throw;
                        }
                    }
                }

                return(settings !);
            }
        }
Ejemplo n.º 8
0
        public NuGetViewModel()
        {
            _settings = Settings.LoadDefaultSettings(
                Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
                configFileName: null,
                machineWideSettings: new CommandLineMachineWideSettings());

            _sourceProvider = new PackageSourceProvider(_settings);

            GlobalPackageFolder = SettingsUtility.GetGlobalPackagesFolder(_settings);

            _packageSources = GetPackageSources();

            _sourceRepositoryProvider = new CommandLineSourceRepositoryProvider(_sourceProvider);

            _initializationTask = new Lazy <Task>(Initialize);
        }
Ejemplo n.º 9
0
        public virtual IEnumerable <SourceRepository> GetInternalRepositories(string pathToSolution)
        {
            string solutionDirectory        = Path.GetDirectoryName(pathToSolution);
            var    settings                 = Settings.LoadDefaultSettings(solutionDirectory);
            var    sourceRepositoryProvider = new SourceRepositoryProvider(
                new PackageSourceProvider(settings),
                Repository.Provider.GetCoreV3());

            var repositories = sourceRepositoryProvider
                               .GetRepositories()
                               .Where(r =>
                                      !string.Equals(r.PackageSource.Name, "nuget.org", StringComparison.OrdinalIgnoreCase) &&
                                      r.PackageSource.IsEnabled &&
                                      !string.Equals(r.PackageSource.Name, "microsoft visual studio offline packages", StringComparison.OrdinalIgnoreCase))
                               .ToList();

            return(repositories);
        }
Ejemplo n.º 10
0
        public static SharedInfo Create(string currentFolder)
        {
            var jsonConfig = File.ReadAllText(Path.Combine(currentFolder, "nugetviz.json"));
            var nugetConfig = new Settings(currentFolder, "NuGet.config");

            var config = JsonConvert.DeserializeObject<AppConfig>(jsonConfig);

            if (string.IsNullOrEmpty(config.PackageDownloadFolderName))
            {
                config.PackageDownloadFolderName = ".nuget";
            }

            if (!Path.IsPathRooted(config.PackageDownloadFolderName))
            {
                config.PackageDownloadFolderName = Path.Combine(currentFolder, config.PackageDownloadFolderName);
            }

            return Create(config, nugetConfig);
        }
Ejemplo n.º 11
0
        public NuGetViewModel()
        {
            try
            {
                _settings = Settings.LoadDefaultSettings(
                    root: null,
                    configFileName: null,
                    machineWideSettings: new CommandLineMachineWideSettings());

                _sourceProvider = new PackageSourceProvider(_settings);

                GlobalPackageFolder = SettingsUtility.GetGlobalPackagesFolder(_settings);

                _packageSources = GetPackageSources();

                _sourceRepositoryProvider = new CommandLineSourceRepositoryProvider(_sourceProvider);
            }
            catch (Exception e)
            {
                _initializationException = ExceptionDispatchInfo.Capture(e);
            }
        }
Ejemplo n.º 12
0
#pragma warning disable CS8618 // Non-nullable field is uninitialized.
        public NuGetViewModel()
#pragma warning restore CS8618 // Non-nullable field is uninitialized.
        {
            try {
                var settings = Settings.LoadDefaultSettings(
                    root: null,
                    configFileName: null,
                    machineWideSettings: new XPlatMachineWideSetting());

                GlobalPackageFolder = SettingsUtility.GetGlobalPackagesFolder(settings);
                _configFilePaths    = settings.GetConfigFilePaths();
                _packageSources     = SettingsUtility.GetEnabledSources(settings);

                DefaultCredentialServiceUtility.SetupDefaultCredentialService(NullLogger.Instance, nonInteractive: false);

                var sourceProvider = new PackageSourceProvider(settings);
                _sourceRepositoryProvider = new CommandLineSourceRepositoryProvider(sourceProvider);
            }
            catch (Exception e) {
                _initializationException = ExceptionDispatchInfo.Capture(e);
            }
        }
        private IEnumerable<PackageSource> LoadConfigurationDefaultSources()
        {
#if !DNXCORE50
            var baseDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "NuGet");
#else
            var baseDirectory = Path.Combine(Environment.GetEnvironmentVariable("ProgramData"), "NuGet");
#endif
            var settings = new Settings(baseDirectory, ConfigurationDefaultsFile);

            var sources = new List<PackageSource>();
            IList<SettingValue> disabledPackageSources = settings.GetSettingValues("disabledPackageSources");
            IList<SettingValue> packageSources = settings.GetSettingValues("packageSources");

            foreach (var settingValue in packageSources)
            {
                // In a SettingValue representing a package source, the Key represents the name of the package source and the Value its source
                sources.Add(new PackageSource(settingValue.Value,
                    settingValue.Key,
                    isEnabled: !disabledPackageSources.Any<SettingValue>(p => p.Key.Equals(settingValue.Key, StringComparison.CurrentCultureIgnoreCase)),
                    isOfficial: true));
            }

            return sources;
        }
Ejemplo n.º 14
0
        public NuGetViewModel(ITelemetryProvider telemetryProvider)
#pragma warning restore CS8618 // Non-nullable field is uninitialized.
        {
            try
            {
                ISettings settings;

                try
                {
                    settings = Settings.LoadDefaultSettings(
                        root: null,
                        configFileName: null,
                        machineWideSettings: new XPlatMachineWideSetting());
                }
                catch (NuGetConfigurationException ex)
                {
                    telemetryProvider.ReportError(ex);

                    // create default settings using a non-existent config file
                    settings = new Settings(nameof(RoslynPad));
                }

                GlobalPackageFolder = SettingsUtility.GetGlobalPackagesFolder(settings);
                _configFilePaths    = SettingsUtility.GetConfigFilePaths(settings);
                _packageSources     = SettingsUtility.GetEnabledSources(settings);

                DefaultCredentialServiceUtility.SetupDefaultCredentialService(NullLogger.Instance, nonInteractive: false);

                var sourceProvider = new PackageSourceProvider(settings);
                _sourceRepositoryProvider = new CommandLineSourceRepositoryProvider(sourceProvider);
            }
            catch (Exception e)
            {
                _initializationException = ExceptionDispatchInfo.Capture(e);
            }
        }
Ejemplo n.º 15
0
        private IEnumerable<PackageSource> LoadConfigurationDefaultSources()
        {
#if !DNXCORE50
            // Global default NuGet source doesn't make sense on Mono
            if (_isMono.Value)
            {
                return Enumerable.Empty<PackageSource>();
            }

            var baseDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "NuGet");
#else
            var baseDirectory = Path.Combine(Environment.GetEnvironmentVariable("ProgramData"), "NuGet");
#endif
            var settings = new Settings(baseDirectory, ConfigurationContants.ConfigurationDefaultsFile);

            var disabledPackageSources = settings.GetSettingValues(ConfigurationContants.DisabledPackageSources);
            var packageSources = settings.GetSettingValues(ConfigurationContants.PackageSources);

            var packageSourceLookup = new Dictionary<string, IndexedPackageSource>(StringComparer.OrdinalIgnoreCase);
            var packageIndex = 0;

            foreach (var settingValue in packageSources)
            {
                // In a SettingValue representing a package source, the Key represents the name of the package source and the Value its source
                var isEnabled = !disabledPackageSources.Any(p => p.Key.Equals(settingValue.Key, StringComparison.OrdinalIgnoreCase));

                var packageSource = ReadPackageSource(settingValue, isEnabled);
                packageSource.IsOfficial = true;

                packageIndex = AddOrUpdateIndexedSource(packageSourceLookup, packageIndex, packageSource);
            }

            return packageSourceLookup.Values
                .OrderBy(source => source.Index)
                .Select(source => source.PackageSource);
        }
Ejemplo n.º 16
0
        public async Task DownloadPackage(string packageID, string version, string[] targetFrameworkSets)
        {
            Settings settings = new Settings(Environment.CurrentDirectory, "NuGet.config");
            var sources = settings.GetSettingValues("activePackageSource");
            output.WriteLine("Sources :" + string.Join(",", sources.Select(x => x.Value)));
            Assert.True(sources.Count > 0);


            var repo = Repository.Factory.GetVisualStudio("http://api.nuget.org/v3/index.json");
            var downloadResource = await repo.GetResourceAsync<DownloadResource>();
            var package = new PackageIdentity(packageID, NuGetVersion.Parse(version));
            var info = await downloadResource.GetDownloadResourceResultAsync(package, settings, CancellationToken.None);

            // RefItems provides us only those frameworks for which there is a folder in lib\...
            // so safer to use that
            var refItems = info.PackageReader.GetReferenceItems().ToList();
            foreach (var item in refItems)
            {
                output.WriteLine("Framework JSON: " + JsonConvert.SerializeObject(item.TargetFramework, Formatting.Indented));
            }

            var fx = info.PackageReader.GetSupportedFrameworks().ToList();
            foreach (var item in fx)
            {
                output.WriteLine("Framework JSON: " + JsonConvert.SerializeObject(item, Formatting.Indented));
            }

            foreach (var item in refItems)
            {
                Assert.True(targetFrameworkSets.Any(x => item.TargetFramework.DotNetFrameworkName.Equals(x)));
            }

            //var packageName = ((System.IO.FileStream)depInfo.PackageStream).Name;
            //Directory.Delete(Path.GetDirectoryName(packageName), true);

            Assert.NotNull(refItems.Count == targetFrameworkSets.Length);
        }