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); }
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); }
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); } }