private void ParsePCFile(string pcfile) { // Don't register the package twice string pname = Path.GetFileNameWithoutExtension(pcfile); if (RuntimeAssemblyContext.GetPackageInternal(pname) != null || IsCorePackage(pname)) { return; } LibraryPackageInfo pinfo = PcFileCache.GetPackageInfo(pcfile); if (pinfo.IsValidPackage) { RuntimeAssemblyContext.RegisterPackage(pinfo, false); } }
void OnPackagesChanged(object s, ExtensionNodeEventArgs args) { PackageExtensionNode node = (PackageExtensionNode)args.ExtensionNode; SystemPackageInfo pi = node.GetPackageInfo(); if (args.Change == ExtensionChange.Add) { var existing = assemblyContext.GetPackageInternal(pi.Name); if (existing == null || (!existing.IsFrameworkPackage || pi.IsFrameworkPackage)) { RegisterPackage(pi, node.Assemblies); } } else { SystemPackage p = assemblyContext.GetPackage(pi.Name, pi.Version); if (p.IsInternalPackage) { assemblyContext.UnregisterPackage(pi.Name, pi.Version); } } }