Пример #1
0
        public PluginFolderNugetProject(string root, IPackageSearchMetadata pluginNuGetPackage, NuGetFramework targetFramework, bool onlyDownload = false,
                                        string targetRid = null, bool filterOurRefFiles = true) :
            base(root, new PackagePathResolver(root), targetFramework)
        {
            _root = root;
            _pluginNuGetPackage = pluginNuGetPackage;
            _targetFramework    = targetFramework;
            _onlyDownload       = onlyDownload;
            _filterOurRefFiles  = filterOurRefFiles;

            _compProvider = new CompatibilityProvider(new DefaultFrameworkNameProvider());
            _reducer      = new FrameworkReducer(new DefaultFrameworkNameProvider(), _compProvider);
            SupportedRids = GetSupportedRids(targetRid);
        }
        public IEnumerable <string> Filter(IEnumerable <string> assemblyPaths, string targetFrameworkStr)
        {
            NuGetFramework targetFramework;

            if (!TryParseTargetFramework(targetFrameworkStr, out targetFramework))
            {
                throw new ArgumentException("Invalid target framework value.");
            }

            var compatibilityProvider = new CompatibilityProvider(new DefaultFrameworkNameProvider());

            var result = new LinkedList <string>();

            foreach (var assemblyPath in assemblyPaths)
            {
                NuGetFramework framework;
                if (!TryGetTargetFrameworkFromPath(assemblyPath, out framework))
                {
                    continue;
                }

                var isCompatible = compatibilityProvider.IsCompatible(targetFramework, framework);
                if (!isCompatible)
                {
                    var expandedFrameworks = ExpandTargetFramework(framework);
                    foreach (var expandedFramework in expandedFrameworks)
                    {
                        isCompatible = compatibilityProvider.IsCompatible(targetFramework, expandedFramework);
                        if (isCompatible)
                        {
                            break;
                        }
                    }
                }

                if (isCompatible)
                {
                    result.AddLast(assemblyPath);
                }
            }

            return(result);
        }
Пример #3
0
        public string GetShortFolderName(FrameworkName frameworkName)
        {
            var supportedFrameworks = GetSupportedFrameworks();
            var providerType        = CompatibilityProvider.GetType();

            // IFrameworkCompatibilityProvider and NuGetFramework are
            // internal in the release version of NuGet.exe
            var method             = providerType.GetMethod(nameof(CompatibilityProvider.IsCompatible));
            var param1             = method.GetParameters()[1];
            var nugetFrameworkType = param1.ParameterType;
            var targetFramework    = Activator.CreateInstance(nugetFrameworkType, frameworkName.Identifier, frameworkName.Version, frameworkName.Profile);

            foreach (var framework in supportedFrameworks)
            {
                if ((bool)method.Invoke(CompatibilityProvider, new[] { targetFramework, framework }))
                {
                    return(framework.GetShortFolderName());
                }
            }
            return(null);
        }
Пример #4
0
        public static void DisplayDialog(DialogType dialogType, DataGridView dataGridView)
        {
            CompatibilityProvider compatibilityProvider = new CompatibilityProvider();

            try
            {
                var filePath = dataGridView.SelectedRows[0].Cells[1].Value.ToString();
                var exam     = Reader.FromOefFile(filePath);

                compatibilityProvider.Patch(exam, filePath);


                if (dialogType == DialogType.ExamSettings)
                {
                    InitilaizeExamSettings(exam, filePath);
                }
                if (dialogType == DialogType.ExamProperties)
                {
                    InitilaizeExamProperties(exam, filePath);
                }
            }
            catch (FileNotFoundException ex)
            {
                Logger.LogException(ex);

                MessageBox.Show("Sorry, the selected exam does not exist. It may have been moved or deleted.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                RowManager.RemoveRow(dataGridView);
            }
            catch (NullReferenceException ex)
            {
                Logger.LogException(ex);

                MessageBox.Show("Sorry, the exam selected is either old or corrupt. If it is an old exam, please upgrade it with the upgrade tool at:\nhttps://sourceforge.net/projects/exam-upgrade-tool/", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                RowManager.RemoveRow(dataGridView);
            }
        }