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);
            }
        }
示例#2
0
        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);
                }
            }
        }