internal bool ScanVersionInfo(string asm) { Assembly plugin = null; try { plugin = Assembly.LoadFrom(asm); } catch {} if (plugin == null) { return(false); } CompatibleVersionAttribute[] versions = (CompatibleVersionAttribute[])CompatibilityManager.GetRequestedVersions(plugin); foreach (CompatibleVersionAttribute attr in versions) { CompatibleVersionItem compatibleVersionItem = new CompatibleVersionItem(); compatibleVersionItem.MinRequiredVersion = attr.MinRequiredVersion.ToString(); compatibleVersionItem.DesignedForVersion = attr.DesignedForVersion.ToString(); CompatibleVersion.Add(compatibleVersionItem); } IEnumerable <UsesSubsystemAttribute> subSystems = (IEnumerable <UsesSubsystemAttribute>)CompatibilityManager.GetSubSystemsUsed(plugin); foreach (UsesSubsystemAttribute attr in subSystems) { SubSystemItem subsystemItem = new SubSystemItem(); subsystemItem.Name = attr.Subsystem; //subsystemItem.Version = attr.Version.ToString(); SubSystemsUsed.Add(subsystemItem); } return(true); }
private async Task ValidateVersionCompatibility(int maxAvailableVersion, CancellationToken cancellationToken) { CompatibleVersion compatibleVersion = await _schemaClient.GetCompatibilityAsync(cancellationToken); if (maxAvailableVersion > compatibleVersion.Max) { throw new SchemaManagerException(string.Format(Resources.VersionIncompatibilityMessage, maxAvailableVersion)); } }